Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Mail-Konfigurationsoptionen
Name Standard Veränderbar Changelog
mail.add_x_header "0" PHP_INI_PERDIR Verfügbar seit PHP 5.3.0.
mail.log NULL PHP_INI_PERDIR Verfügbar seit PHP 5.3.0.
SMTP "localhost" PHP_INI_ALL  
smtp_port "25" PHP_INI_ALL Verfügbar seit PHP 4.3.0.
sendmail_from NULL PHP_INI_ALL  
sendmail_path "/usr/sbin/sendmail -t -i" PHP_INI_SYSTEM  
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

mail.add_x_header bool

Fügt den X-PHP-Originating-Script-Header hinzu, der die UID des Skripts gefolgt vom Dateinamen enthält.

mail.log string

Der Pfad zur Log-Datei, in der mail()-Aufrufe geloggt werden. Die Log-Einträge enthalten den vollen Pfad des Skripts, die Zeilennummer, die To-Adresse und alle Header.

SMTP string

Wird nur unter Windows benutzt: Hostname oder IP-Adresse des SMTP-Servers, den PHP für Mails, die mit der mail()-Funktion verschickt werden, nutzen soll.

smtp_port int

Wird nur unter Windows benutzt: Nummer des Ports des Servers (angegeben in der SMTP-Option), um eine Verbindung herzustellen, wenn eine Mail mit der mail()-Funktion verschickt wird. Standardwert ist 25. Diese Option ist verfügbar ab PHP 4.3.0.

sendmail_from string

"From:"-Mail-Adresse, die beim Mail-Versand unter Windows benutzt werden soll. Diese Direktive setzt auch den "Return-Path:" Header.

sendmail_path string

Pfad, in dem sich das sendmail-Programm befindet, z.B. /usr/sbin/sendmail oder /usr/lib/sendmail. configure versucht, die richtige Position automatisch zu finden. Falls die automatische Erkennung aber fehlschlägt und der Standardwert auf Ihrem Rechner falsch ist, dann können Sie hier den richtigen Pfad setzen.

Falls Sie auf Ihrem Rechner sendmail nicht benutzen, müssen Sie den Pfad angeben, in sich der sendmail-Wrapper/-Ersatz befindet, sofern vorhanden. Zum Beispiel können » Qmail-Benutzer diese Option auf /var/qmail/bin/sendmail oder /var/qmail/bin/qmail-inject setzen.

qmail-inject benötigt keine Optionen, um Mails korrekt zu verarbeiten.

Diese Option funktioniert auch unter Windows. Wenn Sie gesetzt ist, werden smtp, smtp_port und sendmail_from ignoriert und das angegebene Kommando wird ausgeführt.

add a note add a note

User Contributed Notes 6 notes

up
0
blueshibuyadream at gmail dot com
1 year ago
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.
up
-2
rgdobie at conwave dot com dot au
1 year ago
Under Windows, I found sendmail_from needed to be a valid email address which has been defined on the mail server being addressed.
up
-2
elitescripts2000 at yahoo dot com
4 months ago
On Ubuntu 13.04, not sure of the other Distros.

If you simply uncomment the default:

sendmail_path = "sendmail -t -i"

Your mail() functions will all fail.  This is because, you should place the FULL PATH (i.e.  /usr/sbin/sendmail -t -i )

The documentation states PHP tries it's best to find the correct sendmail path, but it clearly failed for me.

So, always enter in the FULLPATH to sendmail or you may get unexpected failing results.

As a secondary note:  Those that just want to ENFORCE the -f parameter, you can do so in php.ini using:

mail.force_extra_parameters = -fdo_not_reply@domain.tld

You can leave the sendmail path commented out, it will still use the defaults  (under UNIX  -t -i options which if you look them up are very important to have set)....

But, now there is no way to change this, even with the 5th argument of the mail() function.  -f is important, because if NOT set, will be set to which ever user the PHP script is running under, and you may not want that.

Also, -f  sets the Return-Path:  header which is used as the Bounce address, if errors occur, so you can process them.  You you can not set Return-Path: in mail() headers for some reason... you could before.  Now you have to use the -f option.
up
-6
A Austin
1 year ago
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.
up
-6
Robert
2 years ago
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.
up
-7
mike dot castrodemaria at gmail dot com
10 months ago
You can set on apache2 a "per domain" default address in apache conf VirtualHost section too.

Juste add : php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -fno-reply@php.net -Fno-reply"

change to your own email choice instead no-reply@php.net .

I hope this helps,
Mike
To Top