]> granicus.if.org Git - php/commitdiff
should now get multiple To: and Cc: recievers right
authorHartmut Holzgraefe <hholzgra@php.net>
Tue, 27 Jun 2000 16:15:16 +0000 (16:15 +0000)
committerHartmut Holzgraefe <hholzgra@php.net>
Tue, 27 Jun 2000 16:15:16 +0000 (16:15 +0000)
(code taken from php3 version)

win32/sendmail.c

index 527c17fa0533ec4fca67432ab482fd6ee75b40d1..fa7203d993d46ef27207ec841f8a7af9b3df8ee6 100644 (file)
@@ -214,7 +214,7 @@ int SendText(char *RPath, char *Subject, char *mailTo, char *data, char *headers
        if (strchr(mailTo, '@') == NULL)
                return (BAD_MSG_DESTINATION);
 
-       sprintf(Buffer, "HELO %s\n", LocalHost);
+       sprintf(Buffer, "HELO %s\r\n", LocalHost);
 
        /* in the beggining of the dialog */
        /* attempt reconnect if the first Post fail */
@@ -226,20 +226,38 @@ int SendText(char *RPath, char *Subject, char *mailTo, char *data, char *headers
        if ((res = Ack()) != SUCCESS)
                return (res);
 
-       sprintf(Buffer, "MAIL FROM:<%s>\n", RPath);
-       if ((res = Post(Buffer)) != SUCCESS)
-               return (res);
-       if ((res = Ack()) != SUCCESS)
-               return (res);
+       // Send mail to all rcpt's
+       token = strtok(tempMailTo, ",");
+       while(token != NULL)
+       {
+               sprintf(Buffer, "RCPT TO:<%s>\r\n", token);
+               if ((res = Post(Buffer)) != SUCCESS)
+                       return (res);
+               if ((res = Ack()) != SUCCESS)
+                       return (res);
+               token = strtok(NULL, ",");
+       }
 
+       // Send mail to all Cc rcpt's
+       efree(tempMailTo);
+       if (headers && pos1 = strstr(headers, "Cc:")) {
+               pos2 = strstr(pos1, "\r\n");
+               tempMailTo = estrndup(pos1, pos2-pos1);
 
-       sprintf(Buffer, "RCPT TO:<%s>\n", mailTo);
-       if ((res = Post(Buffer)) != SUCCESS)
-               return (res);
-       if ((res = Ack()) != SUCCESS)
-               return (res);
+               token = strtok(tempMailTo, ",");
+               while(token != NULL)
+               {
+                       sprintf(Buffer, "RCPT TO:<%s>\r\n", token);
+                       if ((res = Post(Buffer)) != SUCCESS)
+                               return (res);
+                       if ((res = Ack()) != SUCCESS)
+                               return (res);
+                       token = strtok(NULL, ",");
+               }
+               efree(tempMailTo);
+       }
 
-       if ((res = Post("DATA\n")) != SUCCESS)
+       if ((res = Post("DATA\r\n")) != SUCCESS)
                return (res);
        if ((res = Ack()) != SUCCESS)
                return (res);