Index: ext/imap/php_imap.c =================================================================== --- ext/imap/php_imap.c (revision 314217) +++ ext/imap/php_imap.c (working copy) @@ -4016,7 +4016,27 @@ if (!INI_STR("sendmail_path")) { return 0; } - sendmail = popen(INI_STR("sendmail_path"), "w"); + + /** Used to make return-path work **/ + char *sendmail_path = INI_STR("sendmail_path"); + char *appended_sendmail_path = NULL; + + /** Return Path or not **/ + if (rpath && rpath[0]) { + appended_sendmail_path = emalloc( + strlen(sendmail_path) + 3 + strlen(rpath) + 1); + strcpy(appended_sendmail_path, sendmail_path); + strcat(appended_sendmail_path, " -f"); + strcat(appended_sendmail_path, rpath); + sendmail_path = appended_sendmail_path; + } + + /** open the sendmail pointer **/ + sendmail = popen(sendmail_path, "w"); /* New Code */ + + if (appended_sendmail_path) + efree(appended_sendmail_path); + if (sendmail) { if (rpath && rpath[0]) fprintf(sendmail, "From: %s\n", rpath); fprintf(sendmail, "To: %s\n", to);
================ hopefully that will work to fix the rpath option, and finally close this bug http://bugs.php.net/bug.php?id=30688