ubuntuusers.de

Anleitung: PHP mail()-Funktion unter Ubuntu

Status: Ungelöst | Ubuntu-Version: Ubuntu 9.04 (Jaunty Jackalope)
Antworten |

moose

Avatar von moose

Anmeldungsdatum:
18. Dezember 2007

Beiträge: 183

Wohnort: Karlsruhe

Hi,

ich habe nun schon oft versucht auf meinem PC die mail()-Funktion zum laufen zu bringen. Falls jemand ähnliche Probleme hat, hier eine Anleitung:

Pakete

Es müssen nur diese Pakete installiert werden:

Testskript

1
2
3
4
5
6
<?
    $to = 'deineEmail@adresse.de';
    $subject = 'Juhu!';
    $message = 'Es hat geklappt';
    echo mail  ($to, $subject  , $message);
?>

siehe mail()-Referenz

sudo /etc/init.d/apache2 restart  

Postfix

Wer eine ausführliche Erklärung will, sollte sich den Wiki-Artikel Postfix ansehen. Hier steht im Prinzip das gleiche, nur kürzer.

Konfiguration

  • Satelitensystem

  • Name der domain (bei mir: martin-thoma.de)

  • Name des Providers, z.B. smtp.mailanbieter.de

  • sudo gedit /etc/postfix/main.cf

folgendes hinzufügen:

smtp_sasl_auth_enable = yes
# noplaintext weglassen, wenn Passwörter im Klartext übertragen werden müssen:
# (nicht empfohlen, nur wenn's anders nicht funktioniert)
smtp_sasl_security_options = noplaintext noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
sudo gedit /etc/postfix/sasl_password  

in die leere Datei die Zugangsdaten nach folgendem Schema schreiben:

smtp.mailanbieter.de username:ganzgeheimespasswort
sudo gedit /etc/postfix/sender_canonical  
www-data info@martin-thoma.de
root info@martin-thoma.de
sudo postmap /etc/postfix/sasl_password 
sudo /etc/init.d/postfix restart  

folgendes steht bei mir nun in /var/log/mail.log:

Aug  9 10:42:28 pc07 postfix/pickup[12373]: 4FEDF5E81CF: uid=1000 from=<moose>
Aug  9 10:42:28 pc07 postfix/cleanup[12393]: 4FEDF5E81CF: message-id=<20090809084228.4FEDF5E81CF@martin-thoma.de>
Aug  9 10:42:28 pc07 postfix/qmgr[12374]: 4FEDF5E81CF: from=<moose@martin-thoma.de>, size=375, nrcpt=1 (queue active)
Aug  9 10:42:29 pc07 postfix/smtp[12395]: 4FEDF5E81CF: to=<themoosemind@gmail.com>, relay=smtp.knallhart.de[213.160.86.21]:25, delay=0.84, delays=0.04/0.02/0.51/0.27, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 0B73D1FF9D7)
Aug  9 10:42:29 pc07 postfix/qmgr[12374]: 4FEDF5E81CF: removed

Nun sollte man mit dem Testskript eine Mail versenden können.

Fehler

Sender address rejected: Domain not found (in reply to RCPT TO command)

Ihr solltet auf den Absender achten, siehe Postfix (Abschnitt „Korrekten-Absender-setzen“)

fatal: open /etc/postfix/main.cf: No such file or directory

Postfix wurde nicht konfiguriert. Am leichtesten wird es sein, Postfix neu zu installieren:

sudo apt-get purge postfix 
sudo apt-get install postfix  

Dann nicht den Installationssetup abbrechen!

fatal: open database /etc/postfix/sender_canonical.db: No such file or directory
sudo postmap /etc/postfix/sasl_password  

Ich hoffe das hilft jemandem weiter

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

Hallo,

warum hast du in deinem Setup die php.ini angepasst und wofür wird das Paket mailx installiert?

Gruß

moose

(Themenstarter)
Avatar von moose

Anmeldungsdatum:
18. Dezember 2007

Beiträge: 183

Wohnort: Karlsruhe

Hi xabbuh,

ich hab einiges ausprobiert und war froh als es dann geklappt hat. Ich habs gerade getestet: Die php.ini muss nicht angepasst werden und mailx wird nicht benötigt!

Folgendes steht nun in /var/log/mail.log:

Aug 10 11:11:15 pc07 postfix/pickup[4176]: 592B05E81E4: uid=33 from=<www-data>
Aug 10 11:11:15 pc07 postfix/cleanup[4448]: 592B05E81E4: message-id=<20090810091115.592B05E81E4@martin-thoma.de>
Aug 10 11:11:15 pc07 postfix/qmgr[4177]: 592B05E81E4: from=<info@martin-thoma.de>, size=323, nrcpt=1 (queue active)
Aug 10 11:11:16 pc07 postfix/smtp[4450]: 592B05E81E4: to=<themoosemind@gmail.com>, relay=smtp.knallhart.de[213.160.86.21]:25, delay=0.85, delays=0.04/0/0.53/0.27, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as D70991D0560)
Aug 10 11:11:16 pc07 postfix/qmgr[4177]: 592B05E81E4: removed
  • www-data: Das Skript wird über diesen Benutzer ausgeführt

  • info@martin-thoma.de: Diese Adresse gehört mir. Über sie verschicke ich die Mail

  • themoosemind@gmail.com: An diese Adresse schicke ich die mail. Das habe ich in der test.php eingestellt.

  • smtp.knallhart.de: Der smtp-Server, der zu info@martin-thoma.de gehört

Kann ich meinen vorherigen Beitrag irgendwie bearbeiten?

Antworten |