简体   繁体   中英

Basic mail function (PHP) additional “-f” parameter question

Is the -f additional parameter correctly set in this mail function.

@mail("example@exmaple.com.uy",$title,$body,$headers,"-f");

I am Getting the X Warning from some servers.

Sorry for the basic question but some parts of the documentation got me confused (specially some user comments).

Thanks in advance!

From the manual:

The additional_parameters parameter can be used to pass additional flags as command line options to the program configured to be used when sending mail, as defined by the sendmail_path configuration setting. For example, this can be used to set the envelope sender address when using sendmail with the -f sendmail option.

The user that the webserver runs as should be added as a trusted user to the sendmail configuration to prevent a 'X-Warning' header from being added to the message when the envelope sender (-f) is set using this method. For sendmail users, this file is /etc/mail/trusted-users.

source: http://www.astahost.com/info.php/Sending-Mail-Php39s-Mail-Function_t2728.html

The additional_parameters parameter can be used to pass an additional parameter to the program configured to use when sending mail using the sendmail_path configuration setting. For example, this can be used to set the envelope sender address when using sendmail with the -f sendmail option. You may need to add the user that your web server runs as to your sendmail configuration to prevent a 'X-Warning' header from being added to the message when you set the envelope sender using this method. Example 3. Sending mail with extra headers and setting an additional command line parameter.

ie:

<?php
mail("nobody@example.com", "the subject", $message,
"From: webmaster@{$_SERVER['SERVER_NAME']}", "-fwebmaster@{$_SERVER['SERVER_NAME']}");
?>

After -f you need to set the outgoing email address to prevent the warning (in this case its webmaster@-the domain-

If your machine runs on a linux server. Your apache install more than likely runs under the user 'www-data'.

you can figure this out easily by going to /etc/apache2 and typing

cat envvars | grep APACHE_RUN_USER

whatever is after '=' is what user apache is running as.

You need to add this user to the trusted-users file. This file is located at /etc/mail/trusted-users

just

nano /etc/mail/trusted-users

and write 'www-data'.

save and you should be good to go.

-f后面应该是您想要作为邮件信封地址的地址。

@mail("example@exmaple.com.uy",$title,$body,$headers,"-fexample@exmaple.com.uy");

Have you tried sending it without the -f flag?

The user that the webserver runs as should be added as a trusted user to the sendmail configuration to prevent a 'X-Warning' header from being added to the message when the envelope sender (-f) is set using this method. For sendmail users, this file is /etc/mail/trusted-users.

You need to specify an email address after the -f flag. Like this: "-fexample@example.com". You may also need to add the user that your web server run as to your sendmail configuration.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM