...
✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Senden Sie E-Mails mit dem Gmail-SMTP-Server aus dem PHP-Skript

344

E-Mail spielt eine wichtige Rolle auf der Website. Jede Website muss normalerweise E-Mails an Benutzer senden. Diese E-Mails können von der Kontaktseite, dem Newsletter, dem Registrierungsformular usw. gesendet werden.

PHP bietet eine mail()Funktion, die zum Senden einer E-Mail verwendet wird. Aber es gibt Einschränkungen bei der Verwendung der mail()Methode. Sie können keine E-Mails von einem lokalen Entwicklungsserver senden. Ein weiterer Nachteil ist die hohe Wahrscheinlichkeit, dass Ihre E-Mail in einem Spam landet.

In den meisten Fällen mail()sendet die Methode sogar keine E-Mail. Dies kann an der falschen Serverkonfiguration oder etwas anderem liegen.

Um aus diesen Problemen oder Einschränkungen herauszukommen, kann man den SMTP-Server zum Versenden der E-Mails verwenden.

In diesem Artikel lernen wir, wie Sie PHPMailer und den Gmail-SMTP-Server zum Senden von E-Mails verwenden.

Installation

Sie müssen zunächst die PHPMailer- Bibliothek in Ihrem Projekt installieren. Die empfohlene Methode zum Installieren einer Bibliothek ist Composer.

Öffnen Sie die Eingabeaufforderung in Ihrem Projektstammverzeichnis und führen Sie den folgenden Befehl aus.

composer require phpmailer/phpmailer

Da wir Gmail SMTP verwenden, müssen Sie einige Einstellungen in Ihrem Google-Konto ändern. Melden Sie sich bei Ihrem Google-Konto an und klicken Sie auf Mein Konto. Wenn Sie sich auf der Seite Mein Konto befinden, klicken Sie auf Sicherheit. Scrollen Sie nach unten und Sie finden die Einstellungen für "Weniger sicherer App-Zugriff". Stellen Sie es auf EIN.

Senden Sie E-Mails mit dem Gmail-SMTP-Server aus dem PHP-Skript

Danach müssen wir einen Code schreiben, der eine E-Mail über die PHPMailer-Bibliothek und den Gmail-SMTP-Server sendet.

PHP-Skript zum Senden von E-Mails über den Gmail-SMTP-Server

Öffnen Sie Ihre PHP-Datei, in der Sie einen Code für E-Mails schreiben müssen. Zum Beispiel gehe ich davon aus, dass Sie eine sendemail.phpDatei im Stammverzeichnis haben.

sendemail.php

<?php
//Import PHPMailer classes into the global namespace
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
 
require_once 'vendor/autoload.php';
 
$mail = new PHPMailer(true);
?>

Im obigen Code habe ich die Umgebung der PHPMailer-Bibliothek in die PHP-Datei eingebunden.

Als nächstes muss der Benutzer zum Senden von E-Mails mit PHPMailer die Gmail-SMTP-Serveradresse, den SMTP-Port für Gmail und die SMTP-Authentifizierung übergeben (was nichts anderes ist als Ihr Benutzername und das Passwort eines Google-Kontos).

$mail->isSMTP();
$mail->Host = 'smtp.googlemail.com';  //gmail SMTP server
$mail->SMTPAuth = true;
$mail->Username = 'GMAIL_USERNAME';   //username
$mail->Password = 'GMAIL_PASSWORD';   //password
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;                    //SMTP port

Das ist es! Sie sind mit der Konfiguration fertig. Jetzt können Sie mit dem Senden einer E-Mail an einen Benutzer fortfahren.

$mail->setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');
$mail->addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');
 
$mail->isHTML(true);
 
$mail->Subject = 'Email subject';
$mail->Body    = '<b>Email Body</b>';
 
$mail->send();
echo 'Message has been sent';

Ersetzen Sie die Platzhalter durch tatsächliche Werte. Führen Sie diese Datei in einem Browser aus und Ihre E-Mail sollte an die E-Mail-Adresse des Empfängers gesendet werden.

Senden von Anhängen in einer E-Mail

Mit der PHPMailer-Bibliothek kann man einzelne oder mehrere Anhänge in einer E-Mail versenden. Sie müssen lediglich addAttachmentwie folgt einen Verzeichnispfad Ihrer Anhänge an die Methode übergeben .

$mail->addAttachment(__DIR__. '/attachment1.png');
$mail->addAttachment(__DIR__. '/attachment2.jpg');

Unser endgültiger Code ist wie folgt.

sendemail.php

<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
 
require_once "vendor/autoload.php";
require_once "constants.php";
 
$mail = new PHPMailer(true);
 
try {
    $mail->isSMTP();
    $mail->Host = 'smtp.googlemail.com';  //gmail SMTP server
    $mail->SMTPAuth = true;
    $mail->Username = GMAIL_USERNAME;   //username
    $mail->Password = GMAIL_PASSWORD;   //password
    $mail->SMTPSecure = 'ssl';
    $mail->Port = 465;                    //smtp port
  
    $mail->setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');
    $mail->addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');
 
    $mail->addAttachment(__DIR__. '/attachment1.png');
    $mail->addAttachment(__DIR__. '/attachment2.png');
 
    $mail->isHTML(true);
    $mail->Subject = 'Email Subject';
    $mail->Body    = '<b>Email Body</b>';
 
    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: '. $mail->ErrorInfo;
}
?>

Ich hoffe, Sie verstehen, wie Sie E-Mails mit dem Gmail-SMTP-Server von einem PHP-Skript aus senden. Bitte teilen Sie Ihre Gedanken und Vorschläge in einem Kommentar unten mit.

Zum Thema passende Artikel

Aufnahmequelle: artisansweb.net

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen