cvs: php4 /ext/imap php_imap.c

From: Date: Tue, 02 Jul 2002 23:45:32 +0000
Subject: cvs: php4 /ext/imap php_imap.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-12675@lists.php.net to get a copy of this message
fmk Tue Jul 2 19:45:32 2002 EDT Modified files: /php4/ext/imap php_imap.c Log: Make sure To addresses are parsed correct with RFC822. Index: php4/ext/imap/php_imap.c diff -u php4/ext/imap/php_imap.c:1.124 php4/ext/imap/php_imap.c:1.125 --- php4/ext/imap/php_imap.c:1.124 Tue Jul 2 15:29:15 2002 +++ php4/ext/imap/php_imap.c Tue Jul 2 19:45:32 2002 @@ -25,7 +25,7 @@ | PHP 4.0 updates: Zeev Suraski <zeev@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_imap.c,v 1.124 2002/07/02 19:29:15 fmk Exp $ */ +/* $Id: php_imap.c,v 1.125 2002/07/02 23:45:32 fmk Exp $ */ #define IMAP41 @@ -3253,10 +3253,29 @@ #ifdef PHP_WIN32 char *tempMailTo; + char *tsm_errmsg = NULL; ADDRESS *addr; - char *bufferCc = NULL, *bufferBcc = NULL; + char *bufferTo = NULL, *bufferCc = NULL, *bufferBcc = NULL; int offset; + if (to && *to) { + tempMailTo = estrdup(to); + bufferTo = (char *)emalloc(strlen(to)); + offset = 0; + addr = NULL; + rfc822_parse_adrlist(&addr, tempMailTo, NULL); + while (addr) { + if (strcmp(addr->host, ERRHOST) == 0) + return (BAD_MSG_DESTINATION); + else { + offset += sprintf(bufferTo + offset, "%s@%s,", addr->mailbox, addr->host); + } + addr = addr->next; + } + efree(tempMailTo); + bufferTo[offset] = 0; + } + if (cc && *cc) { tempMailTo = estrdup(cc); bufferCc = (char *)emalloc(strlen(cc)); @@ -3294,8 +3313,13 @@ } - if (TSendMail(INI_STR("SMTP"), &tsm_err, NULL, headers, subject, to, message, bufferCc, bufferBcc, rpath) != SUCCESS) { - php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), GetSMErrorText(tsm_err)); + if (TSendMail(INI_STR("SMTP"), &tsm_err, &tsm_errmsg, headers, subject, bufferTo, message, bufferCc, bufferBcc, rpath) != SUCCESS) { + if (tsm_errmsg) { + php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), tsm_errmsg); + efree(tsm_errmsg); + } else { + php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), GetSMErrorText(tsm_err)); + } return 0; } if (bufferCc) efree(bufferCc);

« previous php.cvs (#12675) next »