Für diejenigen, die keine externen Mail-Programme verwenden möchten und auf einem dedizierten Linux-Server mail() nutzen wollen.
Die Art und Weise, wie PHP E-Mails sendet, wird in der Datei php.ini
im Abschnitt [mail function]
beschrieben.
Der Parameter sendmail-path
beschreibt, wie sendmail aufgerufen wird. Der Standardwert ist sendmail -t -i
, also wenn Sie in der Linux-Konsole ein funktionierendes sendmail -t -i < message.txt
erhalten - sind Sie fertig. Sie könnten auch mail.log
hinzufügen, um zu debuggen und sicherzustellen, dass mail() wirklich aufgerufen wird.
Verschiedene MTAs können sendmail
implementieren. Sie erstellen einfach einen symbolischen Link zu ihren Binärdateien unter diesem Namen. Zum Beispiel ist in Debian der Standard Postfix. Konfigurieren Sie Ihren MTA, um E-Mails zu senden, und testen Sie es von der Konsole aus mit sendmail -v -t -i < message.txt
. Die Datei message.txt
sollte alle Header einer Nachricht und einen Body enthalten, die Zieladresse für den Umschlag wird aus dem To:
-Header genommen. Beispiel:
From: myapp@example.com
To: mymail@example.com
Subject: Testmail über sendmail.
Textkörper.
Ich bevorzuge es, ssmtp als MTA zu verwenden, weil es einfach ist und keinen Daemon mit geöffneten Ports benötigt. ssmtp eignet sich nur zum Senden von E-Mails von localhost. Es kann auch authentifizierte E-Mails über Ihr Konto bei einem öffentlichen E-Mail-Dienst senden. Installieren Sie ssmtp und bearbeiten Sie die Konfigurationsdatei /etc/ssmtp/ssmtp.conf
. Um auch lokale System-E-Mails an Unix-Konten zu empfangen (zum Beispiel Benachrichtigungen an root von Cron-Jobs), konfigurieren Sie die Datei /etc/ssmtp/revaliases
.
Hier ist meine Konfiguration für mein Konto bei Yandex Mail:
root=mymail@example.com
mailhub=smtp.yandex.ru:465
FromLineOverride=YES
UseTLS=YES
AuthUser=abcde@yandex.ru
AuthPass=password