Bug #8301 Updated: Mail doesn't support -f
| From: | mj@php.net | Date: | Sat, 03 Nov 2001 18:25:08 +0000 |
| Subject: | Bug #8301 Updated: Mail doesn't support -f | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-69579@lists.php.net to get a copy of this message | ||
ID: 8301
Updated by: mj
Reported By: dirk@rackspace.com
Old Status: Open
Status: Closed
Bug Type: Feature/Change Request
Operating System: Linux Redhat 6.2
PHP Version: 4.0.3pl1
New Comment:
Since PHP 4.0.5 you can use the following syntax:
mail("user@example.org",
"Subject",
"Hello world!",
"From: sender@example.com (My Name)",
"-f sender@example.com");
Previous Comments:
------------------------------------------------------------------------
[2000-12-17 10:32:36] stas@php.net
You should use Errors-To and Return-Path headers, it'll help.
------------------------------------------------------------------------
[2000-12-17 10:28:35] dirk@rackspace.com
The current mail function /sendmail setting doesn't support the -f flag for sendmail. This
means that when an email is sent out by a php script it doesn't bounce back to the from or
reply-to address it bounces back to the web server. In a virtual hosting situation this is a
nightmare.
I wasn't sure how to handle all the regular expression stuff in c but I have a basic outline
for the change needed in mail.c:
if (strstr(senmail_path,"-f")!=NULL &&
(strstr(headers,"Reply-To:")!=NULL||strstr(headers,"From:")!=NULL))
{
int failure=0;
/* They want to override
* They have a valid header
* Need to build up sendmail_path
* First copy out the Reply-To: or From:
* /
if (strstr(headers,"Reply-To:")!=NULL)
{
/* Reply-To takes precidence */
/* find out the reply-to address */
}
else if (strstr(headers,"From:")!=NULL)
{
/* find the From address */
}
if (no_match==1)
{
sendmail = popen(sendmail_path, "w");
}
else
{
/*copy the modify the sendmail path so that -f is overriden by -f reply-to address or -f
from_address */'
sendmail = popen(new_sendmail_path, "w");
}
}
else
{
sendmail = popen(sendmail_path, "w");
}
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=8301&edit=1