From: [EMAIL PROTECTED]
Operating system: Linux
PHP version: 4.0.6
PHP Bug Type: Feature/Change Request
Bug description: patch for mail() to use sendmail_from on Unix
This patch allows setup Return-path: per virtual host
and thus identify real sender of mail message. It is
really usefull to identify source of spam and such.
O.
--- php4-4.0.100.orig/ext/standard/mail.c Mon Jul 30 08:18:06 2001
+++ php4-4.0.100/ext/standard/mail.c Wed Nov 21 20:44:53 2001
@@ -142,8 +142,10 @@
#endif
FILE *sendmail;
int ret;
+ static int sendmail_cmd_len = 0;
char *sendmail_path = INI_STR("sendmail_path");
- char *sendmail_cmd = NULL;
+ char *sendmail_from = INI_STR("sendmail_from");
+ char *sendmail_cmd = NULL;
if (!sendmail_path) {
#ifdef PHP_WIN32
@@ -157,11 +159,18 @@
return 0;
#endif
}
- if (extra_cmd != NULL) {
- sendmail_cmd = emalloc (strlen (sendmail_path) + strlen (extra_cmd) +
2);
+ if ((extra_cmd != NULL) || (sendmail_from != NULL)) {
+ sendmail_cmd = emalloc (((extra_cmd != NULL)?strlen(extra_cmd)+1:0) +
+ ((sendmail_from != NULL)?strlen(sendmail_from)+3:0) +
strlen(sendmail_path) + 1);
strcpy (sendmail_cmd, sendmail_path);
- strcat (sendmail_cmd, " ");
- strcat (sendmail_cmd, extra_cmd);
+ if (extra_cmd != NULL) {
+ strcat (sendmail_cmd, " ");
+ strcat (sendmail_cmd, extra_cmd);
+ }
+ if (sendmail_from != NULL) {
+ strcat (sendmail_cmd, " -f");
+ strcat (sendmail_cmd, sendmail_from);
+ }
} else {
sendmail_cmd = sendmail_path;
}
@@ -171,7 +180,7 @@
#else
sendmail = popen(sendmail_cmd, "w");
#endif
- if (extra_cmd != NULL)
+ if ((extra_cmd != NULL) || (sendmail_from != NULL))
efree (sendmail_cmd);
if (sendmail) {
--
Edit bug report at: http://bugs.php.net/?id=14166&edit=1
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]