char *tempMailTo;
char *tsm_errmsg = NULL;
ADDRESS *addr;
- char *bufferTo = NULL, *bufferCc = NULL, *bufferBcc = NULL;
- int offset;
-
+ char *bufferTo = NULL, *bufferCc = NULL, *bufferBcc = NULL, *bufferHeader = NULL;
+ int offset, bufferLen = 0;;
+
+ if (headers)
+ bufferLen += strlen(headers);
+ if (to)
+ bufferLen += strlen(to) + 6;
+ if (cc)
+ bufferLen += strlen(cc) + 6;
+
+ bufferHeader = (char *)emalloc(bufferLen);
+ memset(bufferHeader, 0, bufferLen);
if (to && *to) {
+ strcat(bufferHeader, "To: ");
+ strcat(bufferHeader, to);
+ strcat(bufferHeader, "\r\n");
tempMailTo = estrdup(to);
bufferTo = (char *)emalloc(strlen(to));
offset = 0;
}
if (cc && *cc) {
+ strcat(bufferHeader, "Cc: ");
+ strcat(bufferHeader, cc);
+ strcat(bufferHeader, "\r\n");
tempMailTo = estrdup(cc);
bufferCc = (char *)emalloc(strlen(cc));
offset = 0;
}
}
+ strcat(bufferHeader, headers);
- if (TSendMail(INI_STR("SMTP"), &tsm_err, &tsm_errmsg, headers, subject, bufferTo, message, bufferCc, bufferBcc, rpath) != SUCCESS) {
+ if (TSendMail(INI_STR("SMTP"), &tsm_err, &tsm_errmsg, bufferHeader, 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);
if (bufferBcc) {
efree(bufferBcc);
}
+ if (bufferHeader) {
+ efree(bufferHeader);
+ }
#else
if (!INI_STR("sendmail_path")) {
return 0;