Wie sende ich E-Mails von PHP ohne installierten SMTP-Server?

Lesezeit: 2 Minuten

Benutzeravatar von dynamic
dynamisch

Ich habe eine klassische LAMP-Plattform (Debian, Apache2, PHP5 und MySQL) auf einem dedizierten Server.

Ich habe gehört, dass PHPMailer E-Mails senden kann, ohne SMTP installiert zu haben. Ist PHPMailer dafür die beste Wahl?

Benutzeravatar von Mārtiņš Briedis
Mārtiņš Briedis

Ja, PHPMailer ist eine sehr gute Wahl.

Wenn Sie möchten, können Sie beispielsweise den kostenlosen SMTP-Server von Google verwenden (es ist wie das Senden von Ihrem Google Mail-Konto.) Kopfzeilen usw. Es bietet mehrteilige E-Mails, Anhänge.

Ziemlich einfach einzurichten.

<?php

$mail = new PHPMailer(true);

//Send mail using gmail
if($send_using_gmail){
    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->SMTPAuth = true; // enable SMTP authentication
    $mail->SMTPSecure = "ssl"; // sets the prefix to the servier
    $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
    $mail->Port = 465; // set the SMTP port for the GMAIL server
    $mail->Username = "[email protected]"; // GMAIL username
    $mail->Password = "your-gmail-password"; // GMAIL password
}

//Typical mail data
$mail->AddAddress($email, $name);
$mail->SetFrom($email_from, $name_from);
$mail->Subject = "My Subject";
$mail->Body = "Mail contents";

try{
    $mail->Send();
    echo "Success!";
} catch(Exception $e){
    //Something went bad
    echo "Fail - " . $mail->ErrorInfo;
}

?>

  • Ich benutze so etwas atm

    – dynamisch

    10. Februar 2011 um 23:49 Uhr

  • Also … dies verwendet SMTP und SSL?

    – Brian McCutchon

    28. Juni 2013 um 3:49 Uhr

  • Nur zur Klarstellung, weil die Frage “ohne installiertes SMTP” lautet.

    – Brian McCutchon

    28. Juni 2013 um 17:17 Uhr

  • “etwas ist schief gelaufen” ist nicht sehr hilfreich, verwenden $mail->ErrorInfo :))

    – Julian F. Weinert

    2. Januar 2014 um 9:43 Uhr

  • @Kolob Canyon Die Antwort beantwortet die Frage: “Wenn Sie möchten, können Sie beispielsweise den kostenlosen SMTP-Server von Google verwenden (es ist wie das Senden von Ihrem Google Mail-Konto). oder Sie können den SMTP-Teil einfach überspringen“…

    – Puroto

    11. Juli 2017 um 16:33 Uhr


Sie können phpmailer auch zum Senden mit der standardmäßigen php mail()-Funktion verwenden.

Ich empfehle, nicht zu versuchen, Dinge manuell mit der Funktion mail() zu tun, sondern stattdessen phpmailer zu verwenden und es so zu konfigurieren, dass es mail() verwendet.

Ich möchte darauf hinweisen, dass, obwohl Sie keine SMTP-Verbindung verwenden, um die E-Mails selbst zu senden, die Funktion mail() entweder eine SMTP-Verbindung oder das sendmail-Programm des Servers verwendet, um die E-Mails zu versenden, also das wird müssen konfiguriert werden, damit es richtig funktioniert.

Benutzeravatar von Justin Jones
Justin Jones

Ohne SMTP können Sie die PHP-Mailfunktion verwenden:
http://php.net/manual/en/function.mail.php

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

  • Ein Tipp: Denken Sie daran, alle vom Benutzer übermittelten Informationen zu validieren, bevor Sie sie in Kopfzeilen einfügen. Auf diese Weise können sie bei der Verwendung keine eigenen Informationen in die Kopfzeilen einfügen mail.

    – Tom Marthenal

    10. Februar 2011 um 23:08 Uhr


  • Die Antwort ist falsch, da Sie smtp sowieso konfiguriert haben müssen (was mail() nutzt sowieso)

    – Hirte

    24. August 2020 um 22:06 Uhr

1444540cookie-checkWie sende ich E-Mails von PHP ohne installierten SMTP-Server?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy