|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2004-07-13 18:23 UTC] brian dot foddy at nwa dot com
Description:
------------
The mail functions additional parameters
argument is ignoring a "-f" argument. I need
to send sendmail a -f argument to change the
Return-Path outbound header to get past some
email spam settings.
This same code worked fine in the previous version
I used (4.2.3).
Configure as reported by phpinfo:
'./configure' '--with-apxs=/apps/soc/apache/bin/apxs' '--prefix=/apps/soc/apache/php5' '--with-sybase-ct=/apps/soc/sybase/OCS-12_0' '--enable-track-vars' '--with-config-file-path=/apps/soc/apache/php5' '--enable-trans-sid' '--with-ldap' '--enable-soap' '--with-libxml-dir=/apps/soc/' '--with-mysql=/apps/soc/mysql/'
Running on Apache 1.3.22, Solaris 2.8 Ultrasparc
V880 machine.
Reproduce code:
---------------
<?php
$t_headers = "From: brian.foddy@nwa.com\n";
$t_headers .= "X-Sender: xsender@nwa.com\n";
$t_headers .= 'X-Mailer: PHP/'.phpversion()."\n";
$t_headers .= "Mailing-List: SOC Issue Tracking - Mantis\n";
$t_headers .= "Content-Type: text/plain; charset=iso-8859-1\n";
$t_recipient = "brian.foddy@nwa.com";
$t_subject = "Subject line";
$t_message = "This is a test message.\n";
$t_message .= `date`;
$result = mail( $t_recipient, $t_subject, $t_message, $t_headers, "-fapache@nwa.com");
if ( TRUE != $result ) {
PRINT "PROBLEMS SENDING MAIL TO: $t_recipient<br />";
exit;
}
print nl2br($t_message);
print ("<BR>Done");
?>
Expected result:
----------------
The resulting email should have a
Return-Path: apache@nwa.com
Actual result:
--------------
Actual Return-Path in header is still raw machine
name. Actual full email and header:
X-UIDL: AAwojxcAAAwkL59LRkTWhqUambbW6YDo
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Received: from FMMSPJ34.pad.nwa.com ([139.72.12.25]) by AMMSPJ28.pad.nwa.com with Microsoft SMTPSVC(5.0.2195.5329);
Tue, 13 Jul 2004 11:02:39 -0500
Received: from j1xrms01.nwa.com ([139.72.109.167]) by FMMSPJ34.pad.nwa.com with Microsoft SMTPSVC(5.0.2195.6713);
Tue, 13 Jul 2004 11:02:38 -0500
Received: from j0xsas04.nwa.com (j0xsas04.nwa.com [139.72.109.213])
by j1xrms01.nwa.com (AIX4.3/8.9.3/8.9.3/NWA/990401/MAILHUB) with SMTP id LAA224760
for <brian.foddy@nwa.com>; Tue, 13 Jul 2004 11:02:38 -0500
Received: from f1xsds01.mn.nwa.com ([139.72.25.101])
by j0xsas04.nwa.com (SMSSMTP 4.0.0.59) with SMTP id M2004071311023832599
for <brian.foddy@nwa.com>; Tue, 13 Jul 2004 11:02:38 -0500
Received: (from apache@localhost)
by f1xsds01.mn.nwa.com (8.11.7p1+Sun/8.11.7) id i6DG2c705433;
Tue, 13 Jul 2004 16:02:38 GMT
Date: Tue, 13 Jul 2004 16:02:38 GMT
Message-Id: <200407131602.i6DG2c705433@f1xsds01.mn.nwa.com>
To: brian.foddy@nwa.com
Subject: Subject line
From: brian.foddy@nwa.com
X-Sender: xsender@nwa.com
X-Mailer: PHP/5.0.0RC3
Mailing-List: SOC Issue Tracking - Mantis
Content-Type: text/plain; charset=iso-8859-1
Return-Path: apache@f1xsds01.mn.nwa.com
X-OriginalArrivalTime: 13 Jul 2004 16:02:38.0925 (UTC) FILETIME=[D21607D0:01C468F2]
This is a test message.
Tue Jul 13 11:02:38 CDT 2004
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 18:00:02 2025 UTC |
what is the output of: echo ini_get('sendmail_from'); echo ini_get('sendmail_path'); before you call mail() And does the sendmail you are using support the -f option?The results as requested: From= [me@localhost.com] Path = [/usr/lib/sendmail -t -i] Yes, it supports the -f option, my temporary workaround was the following code snippet instead of calling mail() $tmp_msg_string = "To: $t_recipient\nSubject: $t_subject\n$t_headers\n\n$t_message\n"; $tmp_handle = popen ("/usr/lib/sendmail -fapache@nwa.com $t_recipient", "w"); fwrite ($tmp_handle, $tmp_msg_string); $result = pclose ($tmp_handle); which worked fine as expected.I hope this is what you want... I changed the external TO address from brian.foddy to "a26811" which is my local user id on the server in question, so the local sendmail did no further forwarding or sending to external hosts. The resulting full message looks like: ============================================ From apache Wed Jul 14 19:14:27 2004 Return-Path: <apache> Received: (from apache@localhost) by f1xsds01.mn.nwa.com (8.11.7p1+Sun/8.11.7) id i6EJEQ218348; Wed, 14 Jul 2004 19:14:26 GMT Date: Wed, 14 Jul 2004 19:14:26 GMT Message-Id: <200407141914.i6EJEQ218348@f1xsds01.mn.nwa.com> To: a26811 Subject: Subject line From: brian.foddy@nwa.com X-Sender: xsender@nwa.com X-Mailer: PHP/5.0.0RC3 Mailing-List: SOC Issue Tracking - Mantis Content-Type: text/plain; charset=iso-8859-1 Content-Length: 55 Status: RO This is a test message. Wed Jul 14 14:14:26 CDT 2004 ===================================Found the problem(s). I had exactly the same problem. Setting the 5th parm to "-fxxx" works perfectly in 4.3.6, It also works perfectly from command line. PHP Fails to use "-f" since I updated to 5.0.0. A diff of the old code in ext/standard/mail.c shows the new mail.force_extra_parameters option but no other obvious related changes. Safe Mode=On would kill the 5th parameter, but that is off. mail.force_extra_parameters is empty. Forcing mail.force_extra_parameters to -fxxx in php.ini does not work. BTW, that parameter is MISSPELLED in the sample config files php.ini-dist and php.ini-recommended as well as the NEWS file. AHH, there is the problem this line: char *force_extra_parameters = INI_STR("mail_force_extra_parameters"); Should read this way: char *force_extra_parameters = INI_STR("mail.force_extra_parameters"); Notice the mail_force should be mail.force. Stupid typo!