„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > E-Mails sicher mit PHP zustellen: Eine Anleitung zur Verwendung von SMTP für Spam-freie E-Mails

E-Mails sicher mit PHP zustellen: Eine Anleitung zur Verwendung von SMTP für Spam-freie E-Mails

Veröffentlicht am 08.11.2024
Durchsuche:809

Deliver Emails Safely with PHP: A Guide to Using SMTP for Spam-Free Emails

Hier ist ein Schritt-für-Schritt-Beispiel, wie man mit PHP SMTP E-Mails versendet, ohne im Spam-Ordner zu landen.

Wir verwenden die Bibliothek PHPMailer, die das Versenden von E-Mails über SMTP vereinfacht und zur Verbesserung der Zustellbarkeit beiträgt. Mit diesen Schritten erfahren Sie, wie Sie SMTP richtig konfigurieren, um zu verhindern, dass E-Mails im Spam-Ordner landen.

Schritt 1: PHPMailer installieren

Zuerst müssen Sie die PHPMailer-Bibliothek installieren. Sie können dies mit Composer tun.

composer require phpmailer/phpmailer

Wenn Sie Composer nicht haben, können Sie PHPMailer manuell von GitHub herunterladen und in Ihr Projekt einbinden.

Schritt 2: Erstellen Sie das PHP-Mail-Skript

Erstellen Sie eine neue Datei send_email.php, in der Sie das Skript zum Senden der E-Mail mit PHPMailer mit SMTP schreiben.

isSMTP();                                          // Use SMTP
    $mail->Host = 'smtp.example.com';                         // Set the SMTP server (use your SMTP provider)
    $mail->SMTPAuth = true;                                   // Enable SMTP authentication
    $mail->Username = '[email protected]';               // SMTP username
    $mail->Password = 'your_password';                        // SMTP password
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;       // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 587;                                        // TCP port to connect to (587 is common for TLS)

    //Recipients
    $mail->setFrom('[email protected]', 'Your Name');
    $mail->addAddress('[email protected]', 'Recipient Name');  // Add recipient
    $mail->addReplyTo('[email protected]', 'Reply Address');    // Add a reply-to address

    // Content
    $mail->isHTML(true);                                        // Set email format to HTML
    $mail->Subject = 'Test Email Subject';
    $mail->Body    = 'This is a test email sent using PHPMailer and SMTP.';
    $mail->AltBody = 'This is a plain-text version of the email for non-HTML email clients.';

    // Send the email
    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}

Teilweise Aufschlüsselung:

  1. PHPMailer-Initialisierung:

    • Nachdem wir die notwendigen Dateien über Composer eingebunden haben, erstellen wir eine Instanz der PHPMailer-Klasse.
    • Der Try-Catch-Block wird verwendet, um alle Ausnahmen zu behandeln, die beim Senden der E-Mail auftreten können.
  2. SMTP-Serverkonfiguration:

    • $mail->isSMTP() weist PHPMailer an, SMTP zum Senden der E-Mail zu verwenden.
    • $mail->Host = 'smtp.example.com': Ersetzen Sie 'smtp.example.com' durch den Host Ihres SMTP-Anbieters (z. B. ist das SMTP von Gmail 'smtp.gmail.com').
    • $mail->SMTPAuth = true: Dies ermöglicht die Authentifizierung, die normalerweise von SMTP-Servern benötigt wird.
    • $mail->Benutzername und $mail->Passwort: Geben Sie hier Ihre SMTP-Anmeldeinformationen ein.
    • $mail->SMTPSecure: Dies legt die Verschlüsselungsmethode fest. Aus Sicherheitsgründen wird TLS (STARTTLS) empfohlen.
    • $mail->Port: Gängige SMTP-Ports sind 587 für TLS und 465 für SSL. Verwenden Sie den von Ihrem SMTP-Server benötigten Port.
  3. Absender und Empfänger festlegen:

    • $mail->setFrom('[email protected]', 'Your Name'): Gibt die E-Mail-Adresse und den Namen des Absenders an.
    • $mail->addAddress('[email protected]', 'Recipient Name'): Fügt die E-Mail-Adresse und den Namen des Empfängers hinzu.
    • $mail->addReplyTo(): ​​Legt die Antwort-E-Mail-Adresse fest (optional).
  4. E-Mail-Inhalt festlegen:

    • $mail->isHTML(true): Gibt an, dass der E-Mail-Inhalt HTML sein wird.
    • $mail->Subject: Legt den E-Mail-Betreff fest.
    • $mail->Body: Dies ist der HTML-Inhalt der E-Mail.
    • $mail->AltBody: Dies ist eine Nur-Text-Version des E-Mail-Textes, nützlich für E-Mail-Clients, die kein HTML unterstützen.
  5. E-Mail senden:

    • $mail->send() versucht, die E-Mail zu senden. Bei Erfolg wird eine Erfolgsmeldung gedruckt; andernfalls wird der Fehler abgefangen und angezeigt.

Schritt 3: SMTP-Konfiguration und Best Practices

Um zu vermeiden, dass E-Mails im Spam-Ordner landen, ist es wichtig, diese Best Practices zu befolgen:

  1. Verwenden Sie einen seriösen SMTP-Anbieter:

    Die Verwendung eines vertrauenswürdigen SMTP-Anbieters wie Gmail, SendGrid oder Mailgun verbessert die Zustellbarkeit, da diese weniger wahrscheinlich als Spam gekennzeichnet werden.

  2. Authentifizierung Ihrer Domain:

    Richten Sie Datensätze für SPF (Sender Policy Framework), DKIM (DomainKeys Identified Mail) und DMARC (Domain-based Message Authentication, Reporting & Conformance) ein Domain, um die Legitimität Ihrer E-Mails zu überprüfen.

  3. Spam-Inhalte vermeiden:

    Stellen Sie sicher, dass Ihr E-Mail-Inhalt sauber ist und nicht als Spam gekennzeichnet wird. Vermeiden Sie die übermäßige Verwendung von Großbuchstaben, Spam-Wörtern (wie „kostenlos“, „Gewinner“ usw.) und zu viele Links.

  4. Nur-Text-Alternative verwenden:

    Fügen Sie immer eine Nur-Text-Version Ihrer E-Mail hinzu ($mail->AltBody). Einige E-Mail-Clients kennzeichnen reine HTML-E-Mails als verdächtig.

  5. Vermeiden Sie kostenlose E-Mail-Dienste als Absender:

    Verwenden Sie eine professionelle E-Mail-Adresse Ihrer eigenen Domain anstelle kostenloser Dienste wie Gmail, Yahoo usw., um nicht als Spam gekennzeichnet zu werden.

  6. Begrenzen Sie die Anzahl der Empfänger pro E-Mail:

    Wenn Sie Massen-E-Mails versenden, verwenden Sie geeignete Massen-E-Mail-Dienste, anstatt sie in einer Nachricht an viele Empfänger zu senden, um zu vermeiden, dass sie als Spam markiert werden.

Schritt 4: Führen Sie das Skript aus

Laden Sie die Datei send_email.php auf Ihren Server hoch und führen Sie sie im Browser oder über die Befehlszeile aus:

php send_email.php

Wenn die Konfiguration korrekt ist, wird die Meldung angezeigt:

Message has been sent

Wenn ein Fehler vorliegt, wird Folgendes angezeigt:

Message could not be sent. Mailer Error: {Error Message}

Abschluss

Durch die Verwendung von PHPMailer und eine ordnungsgemäße SMTP-Einrichtung können Sie sicherstellen, dass Ihre E-Mails zuverlässig gesendet werden und die Wahrscheinlichkeit geringer ist, dass sie im Spam-Ordner landen. Hier ist eine kurze Zusammenfassung:

  1. Installieren Sie PHPMailer, um den E-Mail-Versand mit SMTP zu vereinfachen.
  2. SMTP mit Authentifizierung und Verschlüsselung korrekt konfigurieren.
  3. Verwenden Sie eine ordnungsgemäße Domain-Verifizierung (SPF, DKIM, DMARC), um die Zustellbarkeit zu erhöhen.
  4. Schreiben Sie sauberen E-Mail-Inhalt ohne Spam und fügen Sie immer eine Nur-Text-Version hinzu.
  5. Führen Sie das Skript aus und überwachen Sie die Erfolgsmeldung oder das Fehlerprotokoll.

Dieser Ansatz gewährleistet eine bessere Zustellbarkeit und verringert die Wahrscheinlichkeit, dass Ihre E-Mails als Spam markiert werden.

Folgen Sie mir gerne:

  • LinkedIn
  • GitHub
Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/mdarifulhaque/deliver-emails-safely-with-php-a-guide-to-using-smtp-for-spam-free-emails-12d4?1Falls vorhanden Verstoß, wenden Sie sich zum Löschen bitte an [email protected]
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3