E-Mails über PHP versenden

Aus HSMWiki
Wechseln zu: Navigation, Suche

Da die mail()-Funktion leider zur Adressfälschung verwendet wurde, wird sie bei uns nicht mehr unterstützt. Das Beispiel sendet nach erfolgreicher Authentisierung (ASMTP) eine Nachricht an "echo(at)hs-mittweida.de".

<?php
 
$mailserver = "mail.hs-mittweida.de";
$user = "username";
$pass = "kennwort";
$mailto = "echo(at)hs-mittweida.de";
 
$smtp = fsockopen($mailserver, 25);
 
if ($smtp != 0) {
$in = fgets($smtp, 1024);
fputs($smtp, "EHLO www.hs-mittweida.de\r\n");
$in = fgets($smtp, 1024);
fputs($smtp, "AUTH LOGIN\r\n");
$in = fgets($smtp, 1024);
fputs($smtp, base64_encode($user)."\r\n");
$in = fgets($smtp, 1024);
fputs($smtp, base64_encode($pass)."\r\n");
$in = fgets($smtp, 1024);
fputs($smtp, "MAIL FROM: $user@hs-mittweida.de\r\n");
$in = fgets($smtp, 1024);
fputs($smtp, "RCPT TO: $mailto\r\n");
$in = fgets($smtp, 1024);
fputs($smtp, "DATA\r\n");
$in = fgets($smtp, 1024);
fputs($smtp, "Subject: Testmail\r\n");
fputs($smtp, "From: Vorname Nachname <$user@hs-mittweida.de>\r\n\r\n");
fputs($smtp, "Das ist jetzt der Text der Mail.\r\n\r\n");
fputs($smtp, ".\r\n");
$in = fgets($smtp, 1024);
fputs($smtp, "QUIT\r\n");
fclose($smtp);
} else {
echo "Keine Verbindung zum Mailserver moeglich.";
}
?>

Funktioniert natürlich nur mit echtem Benutzernamen und Kennwort. Außerdem muss das (at) durch das Symbol @ ersetzt werden.