@@ -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