@@ -3144,10 +3144,22 @@ int _php_imap_mail(char *to, char *subject, char *message, char *headers, char *
3144
3144
char *tempMailTo;
3145
3145
char *tsm_errmsg = NULL;
3146
3146
ADDRESS *addr;
3147
- char *bufferTo = NULL, *bufferCc = NULL, *bufferBcc = NULL;
3148
- int offset;
3149
-
3147
+ char *bufferTo = NULL, *bufferCc = NULL, *bufferBcc = NULL, *bufferHeader = NULL;
3148
+ int offset, bufferLen = 0;;
3149
+
3150
+ if (headers)
3151
+ bufferLen += strlen(headers);
3152
+ if (to)
3153
+ bufferLen += strlen(to) + 6;
3154
+ if (cc)
3155
+ bufferLen += strlen(cc) + 6;
3156
+
3157
+ bufferHeader = (char *)emalloc(bufferLen);
3158
+ memset(bufferHeader, 0, bufferLen);
3150
3159
if (to && *to) {
3160
+ strcat(bufferHeader, "To: ");
3161
+ strcat(bufferHeader, to);
3162
+ strcat(bufferHeader, "\r\n");
3151
3163
tempMailTo = estrdup(to);
3152
3164
bufferTo = (char *)emalloc(strlen(to));
3153
3165
offset = 0;
@@ -3168,6 +3180,9 @@ int _php_imap_mail(char *to, char *subject, char *message, char *headers, char *
3168
3180
}
3169
3181
3170
3182
if (cc && *cc) {
3183
+ strcat(bufferHeader, "Cc: ");
3184
+ strcat(bufferHeader, cc);
3185
+ strcat(bufferHeader, "\r\n");
3171
3186
tempMailTo = estrdup(cc);
3172
3187
bufferCc = (char *)emalloc(strlen(cc));
3173
3188
offset = 0;
@@ -3207,8 +3222,9 @@ int _php_imap_mail(char *to, char *subject, char *message, char *headers, char *
3207
3222
}
3208
3223
}
3209
3224
3225
+ strcat(bufferHeader, headers);
3210
3226
3211
- if (TSendMail(INI_STR("SMTP"), &tsm_err, &tsm_errmsg, headers , subject, bufferTo, message, bufferCc, bufferBcc, rpath) != SUCCESS) {
3227
+ if (TSendMail(INI_STR("SMTP"), &tsm_err, &tsm_errmsg, bufferHeader , subject, bufferTo, message, bufferCc, bufferBcc, rpath) != SUCCESS) {
3212
3228
if (tsm_errmsg) {
3213
3229
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), tsm_errmsg);
3214
3230
efree(tsm_errmsg);
@@ -3226,6 +3242,9 @@ int _php_imap_mail(char *to, char *subject, char *message, char *headers, char *
3226
3242
if (bufferBcc) {
3227
3243
efree(bufferBcc);
3228
3244
}
3245
+ if (bufferHeader) {
3246
+ efree(bufferHeader);
3247
+ }
3229
3248
#else
3230
3249
if (!INI_STR("sendmail_path")) {
3231
3250
return 0;
0 commit comments