Was man wissen sollte
- PHP-Klassenoptionen: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
- PEAR Mail: Name des Mailservers notieren > prüfen, ob PEAR Mail installiert ist > PHP-Datei anhand der angegebenen Beispiele ändern.
Dieser Artikel erklärt, wie Sie die SMTP-Authentifizierung zum Senden von E-Mails mit der PHP-Funktion mail() in PEAR Mail verwenden.
E-Mail mit der PHP-Mail-Funktion versenden
Wenn Sie die PHP-Funktion mail() verwenden, senden Sie E-Mails am Ende direkt von Ihrem Webserver und nicht von Ihrem Mailserver. Wenn Sie einen Mailserver über Ihren Webhost oder sogar einen Mailserver mit einem anderen Host haben, ist es normalerweise besser, E-Mails stattdessen darüber zu senden.
Das Problem ist, dass die PHP-Funktion mail() keine eingebaute Möglichkeit zum Versenden von E-Mails über SMTP bietet. Wenn Sie diese Funktionalität nutzen möchten, müssen Sie eine zusätzliche PHP-Klasse installieren.
Hier sind einige Optionen, die funktionieren:
- PHPmailer
- SwiftMailer
- Zend_Mail
- XpertMailer
- PEAR Mail
Wir zeigen Ihnen, wie Sie PEAR Mail verwenden, aber Sie können jede Klasse verwenden, die SMTP unterstützt.
Wenn Ihr Webhost bereits eine oder mehrere dieser Klassen installiert hat, gibt es wahrscheinlich Tutorials, die sich auf Ihre Situation beziehen. Wenn ja, verwenden Sie die Klasse, auf die Sie Zugriff haben.
Verwenden Sie diese Methode nur, wenn Sie PHP verwenden, um Ihre eigenen benutzerdefinierten E-Mail-Formulare zu erstellen. Wenn Sie ein Content-Management-System (CMS) wie WordPress verwenden, suchen Sie nach einem Plug-in oder einer integrierten Funktion zum Senden von E-Mails über SMTP, anstatt zu versuchen, Ihre eigene zu erstellen.
Verwenden von PEAR zum Senden von E-Mails über SMTP
- Stellen Sie sicher, dass Ihre Domain auf die Mail Exchange (MX)-Einträge Ihres Mailserver-Hosts verweist, und notieren Sie sich den Namen Ihres Mailservers. Dies kann beispielsweise mail.ihredomain.net oder smtp.ihredomain.net sein.
- Überprüfen Sie, ob PEAR Mail bereits auf Ihrem Mailserver installiert ist.
- Wenn PEAR Mail nicht installiert ist, wenden Sie sich an Ihren Webmail-Host, um spezifische Anweisungen zur Installation zu erh alten.
-
Sobald PEAR Mail installiert ist, passen Sie eine der Beispiel-PHP-Dateien in den folgenden Abschnitten an Ihre Bedürfnisse an.
Beispiel eines PEAR Mail PHP-Skripts für SMTP-Mail
Wenn Sie möchten, können Sie Ihr eigenes Skript von Grund auf neu erstellen oder das folgende Beispiel nach Ihren Wünschen ändern. Achten Sie darauf, den Namen Ihres Webmail-Servers in die Host-Variable einzugeben, und verwenden Sie Ihre Anmeldeinformationen für Ihren Webmail-Host in den Feldern Benutzername und Passwort.
require_once "Mail.php";
$from="Absendername";
$to="Empfängername";
$subject=" Betreff hier: ";
$body="jede gewünschte Nachricht";
$host="yourmailhost.com";
$username="Ihr Benutzername oder E-Mail"; $password="Ihr Passwort";
$headers=Array ('From'=> $from, 'To'=> $to, 'Subject'=> $subject);
$smtp=Mail::factory('smtp', array ('host'=> $host, 'auth'=> true, 'username'=> $username, 'password'=> $password));
$mail=$smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("
". $mail->getMessage()."
);
} sonst {echo("
Nachricht erfolgreich gesendet!
);}
Beispiel eines PEAR Mail PHP-Skripts für SMTP-Authentifizierung und SSL-Verschlüsselung
Wenn Sie SMTP-Authentifizierung und SSL-Verschlüsselung verwenden möchten, müssen Sie einige Änderungen am vorherigen Beispiel vornehmen. Sie müssen die Host-Variable auf Ihren SSL-Mailserver verweisen und außerdem eine Portnummer wie 25, 465, 587, 2525 oder 8025 angeben. Wenden Sie sich für weitere Informationen an Ihren Webmail-Host, wenn Sie nicht herausfinden können, an welchen Port verwenden.
require_once "Mail.php";
$from="Name des Absenders";
$to="Name des Empfängers";
$subject=" Hier die Betreffzeile: ";
$body="jede gewünschte Nachricht";
$host="ssl://yourmailhost.com";
$port="587"; $username="Ihr Benutzername oder E-Mail";
$password="Ihr Passwort";
$headers=Array ('From'=> $from, ' To'=> $to, 'Subject'=> $subject);
$smtp=Mail::factory('smtp', array ('host'=> $host, 'port'=> $port, 'auth'=> true, 'username'=> $username, 'password'=> $password));
$mail=$smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("
". $mail->getMessage()."
);
} sonst {echo("
Nachricht erfolgreich gesendet!
);}