«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Безопасная доставка электронной почты с помощью PHP: руководство по использованию SMTP для электронной почты без спама

Безопасная доставка электронной почты с помощью PHP: руководство по использованию SMTP для электронной почты без спама

Опубликовано 8 ноября 2024 г.
Просматривать:380

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

Вот пошаговый пример как отправлять электронные письма, не попадая в папку со спамом, с помощью PHP SMTP.

Мы будем использовать библиотеку PHPMailer, которая упрощает отправку электронных писем через SMTP и помогает улучшить доставляемость. Следуя этим шагам, вы узнаете, как правильно настроить SMTP, чтобы электронные письма не попадали в папку со спамом.

Шаг 1. Установите PHPMailer

Во-первых, вам необходимо установить библиотеку PHPMailer. Вы можете сделать это с помощью Composer.

composer require phpmailer/phpmailer

Если у вас нет Composer, вы можете скачать PHPMailer вручную с GitHub и включить его в свой проект.

Шаг 2. Создайте почтовый скрипт PHP

Создайте новый файл send_email.php, в котором напишите скрипт для отправки электронного письма с помощью PHPMailer с SMTP.

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}";
}

Разбивка по частям:

  1. Инициализация PHPMailer:

    • После подключения необходимых файлов через Composer мы создаем экземпляр класса PHPMailer.
    • Блок try-catch используется для обработки любых исключений, которые могут возникнуть при отправке электронного письма.
  2. Конфигурация SMTP-сервера:

    • $mail->isSMTP() сообщает PHPMailer использовать SMTP для отправки электронной почты.
    • $mail->Host = 'smtp.example.com': замените 'smtp.example.com' хостом вашего SMTP-провайдера (например, SMTP Gmail — "smtp.gmail.com").
    • $mail->SMTPAuth = true: включает аутентификацию, которая обычно требуется SMTP-серверами.
    • $mail->Имя пользователя и $mail->Пароль: введите здесь свои учетные данные SMTP.
    • $mail->SMTPSecure: устанавливает метод шифрования. TLS (STARTTLS) рекомендуется для обеспечения безопасности.
    • $mail->Port: общие порты SMTP: 587 для TLS и 465 для SSL. Используйте порт, необходимый вашему SMTP-серверу.
  3. Настройка отправителя и получателя:

    • $mail->setFrom('[email protected]', 'Ваше имя'): указывает адрес электронной почты и имя отправителя.
    • $mail->addAddress('[email protected]', 'Имя получателя'): добавляет адрес электронной почты и имя получателя.
    • $mail->addReplyTo(): ​​устанавливает адрес электронной почты для ответа (необязательно).
  4. Настройка содержимого электронного письма:

    • $mail->isHTML(true): указывает, что содержимое электронной почты будет в формате HTML.
    • $mail->Тема: устанавливает тему электронного письма.
    • $mail->Body: это HTML-содержимое электронного письма.
    • $mail->AltBody: это текстовая версия тела электронного письма, полезная для почтовых клиентов, не поддерживающих HTML.
  5. Отправка письма:

    • $mail->send() пытается отправить электронное письмо. В случае успеха печатается сообщение об успехе; в противном случае ошибка обнаруживается и отображается.

Шаг 3. Настройка SMTP и рекомендации

Чтобы электронные письма не попадали в папку «Спам», очень важно следовать этим рекомендациям:

  1. Используйте надежного SMTP-провайдера:

    Использование доверенного поставщика SMTP, такого как Gmail, SendGrid или Mailgun, повышает доставляемость, поскольку они с меньшей вероятностью будут помечены как спам.

  2. Аутентификация вашего домена:

    Настройте записи SPF (структура политики отправителей), DKIM (почта, идентифицированная с помощью DomainKeys) и DMARC (проверка подлинности сообщений, отчетность и соответствие на основе домена) для домен для проверки легитимности ваших электронных писем.

  3. Избегайте спама:

    Убедитесь, что содержимое вашей электронной почты чистое и не помечено как спам. Избегайте чрезмерного использования заглавных букв, спам-слов (например, «бесплатно», «победитель» и т. д.) и слишком большого количества ссылок.

  4. Используйте альтернативный вариант обычного текста:

    Всегда добавляйте текстовую версию вашего электронного письма ($mail->AltBody). Некоторые почтовые клиенты помечают электронные письма, содержащие только HTML, как подозрительные.

  5. Избегайте бесплатных служб электронной почты в качестве отправителей:

    Используйте профессиональный адрес электронной почты из своего домена вместо бесплатных сервисов, таких как Gmail, Yahoo и т. д., чтобы вас не пометили как спам.

  6. Ограничить количество получателей одного электронного письма:

    При массовой рассылке используйте соответствующие службы массовой рассылки, а не отправляйте одно сообщение множеству получателей, чтобы вас не пометили как спам.

Шаг 4. Запустите сценарий

Загрузите файл send_email.php на свой сервер и запустите его в браузере или через командную строку:

php send_email.php

Если конфигурация правильная, вы увидите сообщение:

Message has been sent

Если произошла ошибка, отобразится:

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

Заключение

Используя PHPMailer и правильную настройку SMTP, вы можете гарантировать, что ваши электронные письма будут отправляться надежно и с меньшей вероятностью попадания в папку со спамом. Вот краткое описание:

  1. Установите PHPMailer, чтобы упростить отправку электронной почты по SMTP.
  2. Правильно настройте SMTP с аутентификацией и шифрованием.
  3. Используйте правильную проверку домена (SPF, DKIM, DMARC), чтобы повысить доставляемость.
  4. Пишите чистый, не содержащий спама контент электронной почты и всегда добавляйте его текстовую версию.
  5. Запустите сценарий и просмотрите сообщение об успехе или журнал ошибок.

Такой подход обеспечивает лучшую доставляемость и снижает вероятность того, что ваши электронные письма будут помечены как спам.

Не стесняйтесь подписываться на меня:

  • LinkedIn
  • GitHub
Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/mdarifulhaque/deliver-emails-safely-with-php-a-guide-to-using-smtp-for-spam-free-emails-12d4?1Если есть какие-либо нарушение, пожалуйста, свяжитесь с [email protected], чтобы удалить
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3