Heim > Backend-Entwicklung > PHP-Tutorial > 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

Barbara Streisand
Freigeben: 2024-09-28 06:08:01
Original
547 Leute haben es durchsucht

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

Berikut ialah contoh langkah demi langkah cara menghantar e-mel tanpa mendarat dalam folder spam menggunakan PHP SMTP.

Kami akan menggunakan pustaka PHPMailer, yang memudahkan penghantaran e-mel melalui SMTP dan membantu meningkatkan kebolehhantaran. Mengikuti langkah ini, anda akan belajar cara mengkonfigurasi SMTP dengan betul untuk mengelakkan e-mel mendarat dalam folder spam.

Langkah 1: Pasang PHPMailer

Pertama, anda perlu memasang perpustakaan PHPMailer. Anda boleh melakukan ini menggunakan Komposer.

composer require phpmailer/phpmailer
Nach dem Login kopieren

Jika anda tidak mempunyai Komposer, anda boleh memuat turun PHPMailer secara manual daripada GitHub dan memasukkannya ke dalam projek anda.

Langkah 2: Cipta Skrip Mel PHP

Buat fail baharu send_email.php di mana anda akan menulis skrip untuk menghantar e-mel menggunakan PHPMailer dengan SMTP.

<?php
// Load Composer's autoloader if using Composer
require 'vendor/autoload.php';

// Import PHPMailer classes into the global namespace
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

$mail = new PHPMailer(true);

try {
    //Server settings
    $mail->isSMTP();                                          // Use SMTP
    $mail->Host = 'smtp.example.com';                         // Set the SMTP server (use your SMTP provider)
    $mail->SMTPAuth = true;                                   // Enable SMTP authentication
    $mail->Username = 'your_email@example.com';               // 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('your_email@example.com', 'Your Name');
    $mail->addAddress('recipient@example.com', 'Recipient Name');  // Add recipient
    $mail->addReplyTo('reply_to@example.com', '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 <b>test email</b> 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}";
}
Nach dem Login kopieren

Pecahan Bahagian demi Bahagian:

  1. Permulaan PHPMailer:

    • Selepas memasukkan fail yang diperlukan melalui Komposer, kami mencipta contoh kelas PHPMailer.
    • Blok cuba-tangkap digunakan untuk mengendalikan sebarang pengecualian yang mungkin berlaku semasa menghantar e-mel.
  2. Konfigurasi Pelayan SMTP:

    • $mail->isSMTP() memberitahu PHPMailer untuk menggunakan SMTP untuk menghantar e-mel.
    • $mail->Host = 'smtp.example.com': Gantikan 'smtp.example.com' dengan hos pembekal SMTP anda (cth., SMTP Gmail ialah 'smtp.gmail.com').
    • $mail->SMTPAuth = true: Ini mendayakan pengesahan, yang biasanya diperlukan oleh pelayan SMTP.
    • $mail->Nama pengguna dan $mail->Kata Laluan: Masukkan bukti kelayakan SMTP anda di sini.
    • $mail->SMTPSecure: Ini menetapkan kaedah penyulitan. TLS (STARTTLS) disyorkan untuk keselamatan.
    • $mail->Port: Port SMTP biasa ialah 587 untuk TLS dan 465 untuk SSL. Gunakan port yang diperlukan oleh pelayan SMTP anda.
  3. Menetapkan Pengirim dan Penerima:

    • $mail->setFrom('your_email@example.com', 'Your Name'): Menentukan e-mel dan nama pengirim.
    • $mail->addAddress('recipient@example.com', 'Recipient Name'): Menambahkan e-mel dan nama penerima.
    • $mail->addReplyTo(): ​​Menetapkan alamat e-mel balas kepada (pilihan).
  4. Menetapkan Kandungan E-mel:

    • $mail->isHTML(true): Menentukan bahawa kandungan e-mel akan menjadi HTML.
    • $mail->Subjek: Menetapkan subjek e-mel.
    • $mail->Body: Ini ialah kandungan HTML e-mel.
    • $mail->AltBody: Ini ialah versi teks biasa badan e-mel, berguna untuk pelanggan e-mel yang tidak menyokong HTML.
  5. Menghantar E-mel:

    • $mail->send() cuba menghantar e-mel. Jika berjaya, mesej kejayaan dicetak; jika tidak, ralat akan ditangkap dan dipaparkan.

Langkah 3: Konfigurasi SMTP dan Amalan Terbaik

Untuk mengelakkan e-mel pergi ke folder spam, adalah penting untuk mengikuti amalan terbaik ini:

  1. Gunakan Pembekal SMTP yang Bereputasi:

    Menggunakan penyedia SMTP yang dipercayai seperti Gmail, SendGrid atau Mailgun meningkatkan kebolehhantaran kerana mereka kurang berkemungkinan dibenderakan sebagai spam.

  2. Sahkan Domain Anda:

    Sediakan rekod SPF (Rangka Kerja Dasar Pengirim), DKIM (Mel Dikenalpasti DomainKeys) dan DMARC (Pengesahan, Pelaporan & Pematuhan Mesej berasaskan Domain) untuk anda domain untuk mengesahkan kesahihan e-mel anda.

  3. Elakkan Kandungan Spam:

    Pastikan kandungan e-mel anda bersih dan tidak dibenderakan sebagai spam. Elakkan penggunaan huruf besar berlebihan, perkataan spam (seperti "percuma", "pemenang", dll.), dan terlalu banyak pautan.

  4. Gunakan Alternatif Teks Biasa:

    Sentiasa sertakan versi teks biasa e-mel anda ($mail->AltBody). Sesetengah pelanggan e-mel membenderakan e-mel HTML sahaja sebagai mencurigakan.

  5. Elakkan Perkhidmatan E-mel Percuma sebagai Pengirim:

    Gunakan alamat e-mel profesional daripada domain anda sendiri dan bukannya perkhidmatan percuma seperti Gmail, Yahoo, dsb., untuk mengelak daripada dibenderakan sebagai spam.

  6. Hadkan Bilangan Penerima setiap E-mel:

    Jika menghantar e-mel pukal, gunakan perkhidmatan e-mel pukal yang betul dan bukannya menghantar kepada banyak penerima dalam satu mesej untuk mengelak daripada dibenderakan kerana menghantar spam.

Langkah 4: Jalankan Skrip

Muat naik fail send_email.php ke pelayan anda dan jalankannya dalam penyemak imbas atau melalui baris arahan:

php send_email.php
Nach dem Login kopieren

Jika konfigurasi betul, anda akan melihat mesej:

Message has been sent
Nach dem Login kopieren

If there’s an error, it will display:

Message could not be sent. Mailer Error: {Error Message}
Nach dem Login kopieren

Conclusion

By using PHPMailer and a proper SMTP setup, you can ensure your emails are sent reliably and with a lower chance of landing in the spam folder. Here's a quick summary:

  1. Install PHPMailer to simplify email sending with SMTP.
  2. Configure SMTP correctly with authentication and encryption.
  3. Use proper domain verification (SPF, DKIM, DMARC) to increase deliverability.
  4. Write clean, non-spammy email content and always include a plain-text version.
  5. Run the script and monitor the success message or error log.

This approach ensures better deliverability and reduces the chances of your emails being marked as spam.

Feel free to follow me:

  • LinkedIn
  • GitHub

Das obige ist der detaillierte Inhalt vonE-Mails sicher mit PHP zustellen: Eine Anleitung zur Verwendung von SMTP für Spam-freie E-Mails. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage