- }
-
-
- /* Sending the "DATA" msg */
- OS_SendTCP(socket,DATAMSG);
- msg = OS_RecvTCP(socket, OS_SIZE_1024);
- if((msg == NULL)||(!OS_Match(VALIDDATA, msg)))
- {
- merror(DATA_ERROR);
- if(msg)
- free(msg);
- close(socket);
- return(OS_INVALID);
- }
- MAIL_DEBUG("DEBUG: Sent '%s', received: '%s'", DATAMSG, msg);
- free(msg);
-
-
- /* Building "From" and "To" in the e-mail header */
- OS_SendTCP(socket, final_to);
-
-
- memset(snd_msg,'\0',128);
- snprintf(snd_msg,127, FROM, mail->from);
- OS_SendTCP(socket, snd_msg);
-
-
- /* Sending date */
- memset(snd_msg,'\0',128);
-
-
- /* Solaris doesn't have the "%z", so we set the timezone to 0. */
- #ifdef SOLARIS
- strftime(snd_msg, 127, "Date: %a, %d %b %Y %T -0000\r\n",p);
- #else
- strftime(snd_msg, 127, "Date: %a, %d %b %Y %T %z\r\n",p);
- #endif
-
- OS_SendTCP(socket,snd_msg);
-
-
- /* Sending subject */
- memset(snd_msg,'\0',128);
- snprintf(snd_msg, 127, SUBJECT, sms_msg->subject);
- OS_SendTCP(socket,snd_msg);
-
- OS_SendTCP(socket,ENDHEADER);
-
-
- /* Sending body */
- OS_SendTCP(socket, sms_msg->body);
-
-
- /* Sending end of data \r\n.\r\n */
- OS_SendTCP(socket,ENDDATA);
- msg = OS_RecvTCP(socket, OS_SIZE_1024);
- if(mail->strict_checking && ((msg == NULL)||(!OS_Match(VALIDMAIL, msg))))
- {
- merror(END_DATA_ERROR);
- if(msg)
- free(msg);
- close(socket);
- return(OS_INVALID);
- }
- /* Checking msg in here, since it may be null */
- if(msg)
- free(msg);
-
-
- /* quitting and closing socket */
- OS_SendTCP(socket,QUITMSG);
- msg = OS_RecvTCP(socket, OS_SIZE_1024);
-
- if(msg)
- free(msg);
-
- memset(snd_msg,'\0',128);
-
-
- /* Returning 0 (success) */
- close(socket);
-
- return(0);
-}
-
-
-
-/* OS_Sendmail v0.1: 2005/03/18
- */
-int OS_Sendmail(MailConfig *mail, struct tm *p)
-{
- int socket,i=0;
- char *msg;
- char snd_msg[128];
-
- MailNode *mailmsg;
-
- /* If there is no sms message, we attempt to get from the
- * email list.
- */
- mailmsg = OS_PopLastMail();