Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I have about 6 sites on my dedicated server (running centos5), and all emails sent using php's mail function are sent by nobody@servername.hostname.com e.g. "Received: from nobody by servername.hostname.com with local (Exim 4.69)". Is there any way to change this to show the appropriate domain?

share|improve this question
    
You could use header rewriting but that will not work as all mail is being submitted by the same user (nobody) –  topdog Jul 30 '10 at 5:07

3 Answers 3

From the PHP manual for mail():

*Note: When sending mail, the mail must contain a From header. This can be set with the additional_headers parameter, or a default can be set in php.ini.*

Like most php.ini settings this can overridden in the vhost config on Apache or via .htaccess or it can be set in the script (optionaly using auto_prepend) and since 5.3.0 via .user.ini files. But rather than explicitly setting the From, Reply-To and Return-path headers, it's simpler to just specify the recipient when the 'sendmail' program is invoked to process the message.

Assuming exim uses the standard flags on the commandline for its sendmail cli:

in php.ini:

sendmail_path = "/usr/sbin/sendmail -ffrom@example.com -t -i"

In httpd.conf

php_admin_value sendmail_path "/usr/sbin/sendmail -ffrom@example.com -t -i"

In .htaccess.conf

php_value sendmail_path "/usr/sbin/sendmail -ffrom@example.com -t -i"

(note your sendmail path may be different from that shown)

C.

share|improve this answer

You can use some wrapper script, for example my php-secure-sendmail. It allows you to log every sent email (virtualhost,date/time,recipient), limit number of sent emails per hour/day by virtualhost, set envelope-sender and many more...

share|improve this answer

You must use the -f option of php mail function.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.