Ubuntu server zum senden von mails einrichten ()


40

Ich habe viel gesucht, konnte aber nicht herausfinden, wie man einen Ubuntu-Server einrichtet, damit ich Mails mit der mail () -Funktion in PHP über PHP senden kann.

Ich habe Apache2, MySQL und PHP5 auf meinem Server installiert.

Dankeschön.

Antworten:


45

Ich stimme auch zu, dass es an Tutorials für Leute mangelt, die nur ein Skript zum Senden benötigen, z. B. Fehler-E-Mails, und keinen vollwertigen Mailserver benötigen.

Erstens, wenn Postfix noch nicht installiert ist:

sudo apt-get install postfix

Es werden einige Fragen gestellt. Zum ersten Mal habe ich "Internet site" gewählt; Für eine Maschine hinter einer Firewall könnte ich stattdessen Smarthost wählen. Für die zweite Frage wird standardmäßig der Computername verwendet. Ich habe einen Domain-Namen angehängt, den ich kontrolliere (damit ich später DNS dafür einstellen kann, sollte ich das müssen).

Zu diesem Zeitpunkt sollten Sie in der Lage sein, "mail" von der Kommandozeile aus zu verwenden, um einen Test zu senden. (Ich folge normalerweise zuerst den Anweisungen unter http://ubuntuforums.org/showthread.php?t=38429 , ansonsten muss ich das -fFlag verwenden, um /usr/bin/sendmail. Ich erstelle auch gerne /etc/aliasesEinträge für root und meinen normalen Benutzer und führe sie dann aus. newaliases)

Dann erstelle unter /etc/php5/conf.d eine Datei (zB mailconfig.ini) mit folgendem Inhalt:

sendmail_from = "me@example.com"
sendmail_path = "/usr/sbin/sendmail -t -i -f me@example.com"

Ändern Sie me@example.com in Ihre E-Mail-Adresse. Dies bedeutet, dass alle E-Mails so aussehen, als würden sie von Ihnen gesendet. Dies kann dazu beitragen, dass sie nicht abgelehnt werden. Dies reicht aus, um nur Fehler-E-Mails an einen Entwickler zu senden.

(Die obigen Anweisungen wurden unter Ubuntu 10.04, 11.04, 11.10, 12.04 getestet.)

PS Wie in den Kommentaren durchgeknallt hervorgehoben, mailist es nicht immer da (zB bei Ubuntu 11.10 fehlt es). Die obigen Anweisungen bleiben davon unberührt, Sie benötigen sie nur mailfür den Test und können sie auch verwenden sendmail. Ist mailaber auch nützlich zum Lesen von E-Mails, daher lohnt es sich normalerweise, diese mit apt-get install mailutils(als root) zu installieren .


1
Vielen Dank! Das hat einwandfrei funktioniert. Getestet auf Ubuntu 12.04 LTS x64.
Trent Scott

Dies behebt auch die Verwendung von NGINX! Und PHP5-FPM
TheBlackBenzKid

1
Hinweis: Auf meinem Host wird das mailBefehlszeilenprogramm bei einer sauberen Ubuntu-Installation nicht installiert, und bei der Installation von PostFix wird es nicht installiert. Versuchen Sie sudo apt-get install mailutils, den mailBefehl ssmtp
abzurufen

Ich brauchte Wochen, um herauszufinden, dass das Zeug drin sein sendmail_pathmuss, um "richtig zu funktionieren, wiesendmail_path = "/usr/sbin/sendmail -t -i -f me@example.com"
Sliq

1
Endlich! Eine einfache und unkomplizierte Lösung. Funktioniert auf Ubuntu 14.04.
Knyri


1

Führen Sie entweder den mühsamen Prozess durch, einen Mailserver direkt auf Ihrem Server einzurichten (Postfix usw.), oder verwenden Sie eine Bibliothek, mit der Sie eine direkte Verbindung zu einem SMTP-Server herstellen können.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.