- Чому email не доставляються і пропадають
- Що зробити, щоб листи доходили до адресата
- Як налаштувати підключення SMTP
- Налаштування WP Mail SMTP
- Установка і настройка поштового сервера
- установка Postfix
- установка Sendmail
- Що робити, якщо email не доходить
- Як перевірити відправку email в PHP
- На закінчення
Наша взаимовыгодная связь https://banwar.org/
Якщо ви на своєму сайті активно використовуєте email, а саме форми зворотного зв'язку, наприклад, Contact Form 7, форуми з розсилкою повідомлень або інші соціальні плагіни, то напевно часто стикалися з такою проблемою, як пропажа листів, потрапляння їх в спам і т.д . Як цього уникнути, поговоримо далі.
Чому email не доставляються і пропадають
Листи можуть пропадати в силу декількох причин. Перша і найголовніша - ваш email взяли за спам. Будь-який серйозний поштовий сервіс має свій потужний антиспам-модуль c евристичним аналізом вмісту email, не кажучи вже про чорному списку адрес. Тому, не перестарайтеся з розсилкою, щоб не потрапити в чорний список спамерів.
Також, в спам потраплять не підписані електронним підписом листи. Тобто, будь-хто може відправити фішингових лист, скажімо, від імені [email protected] , Однак, це не вдасться!, Тому що відправник навряд чи зможе підтвердити, що воно було відправлено з цієї адреси. Для перевірки легітимності використовуються підпису DKIM (DomainKeys Identified Mail) і SPF (Sender Policy Framework) записи.
Що зробити, щоб листи доходили до адресата
Не перестарайтеся з розсилкою і налаштуйте свій SMTP-сервер, щоб вихідні email підписувалися DCIM- і SPF-підписами. Ви можете налаштувати свій SMTP сервер, але щоб не морочитися з налаштуванням, можна прив'язати домен до Яндекс.ПДД або Google Apps for Business і відправляти email через їх сервіс, і тоді все потрібні заголовки будуть прописуватися автоматом. Але тут є 2 застереження
- Ваш хостинг-провайдер повинен дозволяти вихідні з'єднання, щоб була можливість підключитися до зовнішнього SMTP сервера
- Обсяг розсилки НЕ перевищує 2000 листів в день. Це ліміт Google, у Yandex навряд чи більше
Якщо ви укладаєтеся в вищевказані рамки, тоді вперед, налаштуємо підключення
Як налаштувати підключення SMTP
Щоб налаштувати нормальну відправку листів, потрібно встановити плагін WP Mail SMTP . Він дозволяє переконфігурувати стандартний PHP Mailer так, щоб була можливість підключатися до SMTP сервера. Також, раджу використовувати його, якщо ви користуєтеся локальним сервером.
Налаштування буде відбуватися під Яндекс. Гугл відмітається, так як тепер там немає безкоштовних тарифів
Налаштування WP Mail SMTP
А ось опис опцій
- From Email - email відправника. Вводимо логін від пошти повністю як на зображенні вгорі
- From Name - Ім'я відправника. Можете поставити сюди що хочете, наприклад, адреса вашого сайту
- Mailer - вибираємо Send all WordPress emails via SMTP
- Return Path - залишаємо порожнім
- SMTP Host - адреса SMTP сервера. вводимо smtp.yandex.ru
- SMTP Port - порт SMTP сервера. вводимо 465
- Encryption - тип шифрування листів. Вводимо Use SSL encryption
- Authentication - авторизація. Вибираємо Yes: Use SMTP authentication
- Username - логін від пошти. Значення має збігатися з From Email
Якщо логін виду [Email protected] , То потрібно вписувати просто login, без @ yandex.ru
Якщо SSL не спрацював, можна спробувати наступні настройки:
- сервер smtp.yandex.com
- шифрування TLS
- порт 587
- Password - пароль від пошти
Коли все налаштуєте, можете перевірити, як вийшло. Для цього введіть у розділі нижче Send a Test Email ваш email, відправте тестовий лист і перевірте пошту. Якщо все в порядку, воно повинно знаходитися там.
Припустимо, ми зареєстрували email [Email protected] і внесли його в налаштування WP Mail SMTP, тоді його потрібно прописати в формі Contact Form 7 в розділі Лист в поле Від кого:
Не звертайте уваги на помилку: Електронна адреса відправника не належить домену сайту. , Email будуть відправлятися вірно з цієї адреси.
Установка і настройка поштового сервера
Якщо ліміти зовнішнього SMTP-сервера не влаштовують, можна використовувати свій серверний варіант: встановити Postifx або Sendmail. Обидва відповідають за роботу з email, зокрема, їх відправку і пересилку.
Установка відбувається за допомогою введення команд в консоль SSH . Інструменти: Far Manager або putty. Якщо робота не під root, не забуваємо перед командами давати sudo
установка Postfix
apt-get update && apt-get install postfix
В процесі установки будуть задані питання щодо настройки. Важливо вибрати тип Internet Site. Це необхідно зробити для того, щоб Postfix згенерував файл main.cf і відразу почав роботу. В іншому випадку, Вам необхідно буде налаштовувати його вручну.
установка Sendmail
Sendmail встановлюється приблизно так само
apt-get update && apt-get install sendmail
Потім його конфігурувати
sendmailconfig
Після всього цього перезавантажити сервер
reboot
Що робити, якщо email не доходить
- Перевірити вірність адреси, куди пошта повинна прийти;
- Перевірити папку Спам;
- Почекати пару хвилин.
Якщо по закінченню часу лист таки не надійшов в поштову скриньку, хоча плагін просигналізував про успішну відправку повідомлення, можливо, хостинг не налаштований належним чином.
Можливо, php просто не може відправляти листи.
Як перевірити відправку email в PHP
3 команди, які потрібно ввести в консоль SSH послідовно:
php -a mail ( ' [Email protected] ', "Test Mailer", "Test mail from php mailer"); exit;
[Email protected] - це адреса, куди треба доставити тестовий лист.
Якщо PHP не налаштований на роботу в консолі, можна спробувати наступне:
- Створити файл test_email.php;
- Прописати туди: <? Php mail ( ' [Email protected] ', "Test Mailer", "Test mail from php mailer");
- Запустити файл командою php -f test_email.php
Якщо на даному етапі виникає помилка, спробуйте перевстановити і правильно конфігурувати Postfix або Sendmail.
Як варіант, ще варто спробувати перевірити sendmail_path в php.ini.
На закінчення
Відправка листів за допомогою SMTP-сервера - це правильний підхід до справи. Завжди використовуйте його, щоб це можливо практично на будь-якому хостингу, і нехай ваші email доходять до адресата.
Якщо у вас виникли питання, щось не вийшло або не працює, пишіть в коментарях, вирішимо проблему.