Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Basic mail function (PHP) additional "-f" parameter question

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

@mail("[email protected]",$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!

like image 965
Trufa Avatar asked Nov 17 '10 14:11

Trufa


People also ask

What are the three arguments required in using mail () function?

PHP makes use of mail() function to send an email. This function requires three mandatory arguments that specify the recipient's email address, the subject of the the message and the actual message additionally there are other two optional parameters.

What is the first parameter in mail method?

Look, the first parameter of app. post() is the route at which post data is received, which is sent by HTML form(action = '/') mean action attribute of your form tag, it is the route at which your HTML form will send your data.

Which is an optional parameter in mail function?

additional-headers(Optional): This is an optional parameter that can create multiple header elements such as From (Specifies the sender), CC (Specifies the CC/Carbon Copy recipients), BCC (Specifies the BCC/Blind Carbon Copy Recipients.


2 Answers

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.

i.e:

<?php
mail("[email protected]", "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-

like image 185
SW4 Avatar answered Sep 17 '22 16:09

SW4


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.

like image 38
castis Avatar answered Sep 19 '22 16:09

castis