In PHP E-Mail mit SMTP Authentifizierung versenden

Um E-Mails mit PHP zu versenden, bringt PHP die Funktion mail($to, $subject, $body, $header) mit. Da diese Funktion aber ohne SMTP Authentifizierung funktioniert, werden Mails vom Empfänger häufig als SPAM markiert oder bei einigen E-Mail Anbietern gar nicht erst empfangen. Um das zu verhindern, empfiehlt sich das saubere Versenden mit SMTP Authentifizierung.

Installation

Für die SMTP Authentifizierung werden die Paket Mail und Net_SMTP benötigt. Entweder diese Pakete downloaden und in die Anwendung integrieren oder wenn möglich mit pear installieren.
pear install Mail
pear install Net_Smtp

PHP Script

require_once "Mail.php";
 
$body = "Mein Mail Bodyn";
$subject = "Mail mit SMTP Authentifizierung";
$mail_to = "zumir@meinemailserver.de";
$mail_from = "phpmailer@meinemailserver.de";
 
//SMTP Verbindungsdaten
$host = "smtp.meinemailserver.de";
$username = "phpmailer";
$password = "SuperGeheim";
 
$smtp = Mail::factory('smtp',
 array (
 'host' => $host,
 'auth' => true,
 'username' => $username,
 'password' => $password
));
 
$headers = array (
 'From' => $mail_from,
 'To' => $mail_to,
 'Subject' => $subject
);
$mail = $smtp->send($mail_to, $headers, $body);
 
if (PEAR::isError($mail)) {
 echo "Fehler beim Versender der E-Mail : ". $mail->getMessage();
}

8 Comments

  1. mattes

    danke fuer das php script..

    Reply
  2. Pac-Man

    Hallo,

    ich verstehe im moment überhaupt nicht, was ich mit “Mail” und “Net_SMTP” machen muss…? *ratlos guck* 🙁

    Reply
    1. jogep (Post author)

      Damit die Mails per SMTP versendet werden können, werden diese beiden Pakete benötigt. Das ganze geht halt mittels PEAR

      pear install Mail
      pear install Net_Smtp

      oder als manueller download.

      Reply
  3. Pac-Man

    Hm… *koppkratz* Also, ich habe mir jetzt die beiden Pakete da heruntergeladen und auf meinen Webspace hochgeladen. Soweit so gut… jetzt steht aber in der Mail.php als erste “require_once PEAR.php”, aber diese Datei finde ich wo nirgends…?

    Reply
    1. Sokrates

      Da steht nicht ‘require_once PEAR.php’, sondern ‘require_once Mail.php’

      Ansonsten: http://de.wikipedia.org/wiki/PHP_Extension_and_Application_Repository

      Reply
  4. test

    funzt ned bei gmail brrr error code 555

    Reply
  5. Andreas Greif

    Besten Dank für diesen Artikel, kam echt gelegen. Das Script wird gleich ausgetestet!!

    Reply
  6. hunni

    Funktioniert bestens bei mir! Super sache!

    Vielen Dank

    Gruß Hunni

    Reply

Leave a Reply