Under Windows, I found sendmail_from needed to be a valid email address which has been defined on the mail server being addressed.
Runtime Configuration
The behaviour of these functions is affected by settings in php.ini.
| Name | Default | Changeable | Changelog |
|---|---|---|---|
| mail.add_x_header | "0" | PHP_INI_PERDIR | Available since PHP 5.3.0. |
| mail.log | NULL | PHP_INI_PERDIR | Available since PHP 5.3.0. |
| SMTP | "localhost" | PHP_INI_ALL | |
| smtp_port | "25" | PHP_INI_ALL | Available since PHP 4.3.0. |
| sendmail_from | NULL | PHP_INI_ALL | |
| sendmail_path | "/usr/sbin/sendmail -t -i" | PHP_INI_SYSTEM |
Here's a short explanation of the configuration directives.
-
mail.add_x_headerbool -
Add X-PHP-Originating-Script that will include UID of the script followed by the filename.
-
mail.logstring -
The path to a log file that will log all mail() calls. Log entries include the full path of the script, line number, To address and headers.
-
SMTPstring -
Used under Windows only: host name or IP address of the SMTP server PHP should use for mail sent with the mail() function.
-
smtp_portint -
Used under Windows only: Number of the port to connect to the server specified with the SMTP setting when sending mail with mail(); defaults to 25. Only available since PHP 4.3.0.
-
sendmail_fromstring -
Which "From:" mail address should be used in mail sent from PHP under Windows. This directive also sets the "Return-Path:" header.
-
sendmail_pathstring -
Where the sendmail program can be found, usually /usr/sbin/sendmail or /usr/lib/sendmail. configure does an honest attempt of locating this one for you and set a default, but if it fails, you can set it here.
Systems not using sendmail should set this directive to the sendmail wrapper/replacement their mail system offers, if any. For example, » Qmail users can normally set it to /var/qmail/bin/sendmail or /var/qmail/bin/qmail-inject.
qmail-inject does not require any option to process mail correctly.
This directive works also under Windows. If set, smtp, smtp_port and sendmail_from are ignored and the specified command is executed.
The mail.add_x_header configuration value is set to "On" in the default production php.ini (although the default value of this setting is Off)
Despite what this page says about the "SMTP" and "smtp_port" settings being used only under Windows, all Drupal sites use these settings to send email, regardless of which OS they're running in.
For linux you can over-ride the default "From" for the outgoing emails by including in php.ini this line:
sendmail_path = "/usr/sbin/sendmail -t -i -f fromMe@blah.com"
The path should work for most linux installations.
On Darwin OS such as OSX (current one: 10.8.3) you need to add a specific command and option to the sendmail_path constant if you have downloaded and installed a mamp with a stack.
Indeed you can see the required libraries for PHP, Apache, MySQL in "common/lib" folder. The problem is when you run an external command using these libraries, for example "sendmail". It could be a problem if it gets the stack libraries and not the system ones (different versions, etc).
The "env -i" command clean the Stack environment variables and run "sendmail" with the system libraries.
Hope this helps.
