Формы обратной связи, письма заказов и восстановление пароля — это transactional email. Они должны доставляться надежно, но стандартный PHP mail часто имеет слабую аутентификацию и плохую диагностику.
Почему SMTP лучше
| Метод | Комментарий |
|---|---|
| PHP mail() | Простой, но часто без аутентификации и понятных логов доставки. |
| SMTP-ящик | Использует логин/пароль и корректную личность отправителя. Хорошо для небольших проектов. |
| Transactional mail service | Полезен для больших объемов, шаблонов и подробных логов. |
Что настроить
- По возможности используйте адрес на том же домене, что и сайт.
- Отправляйте через SMTP с SSL/TLS на 465 или STARTTLS на 587.
- Настройте SPF, DKIM и DMARC для домена.
- Не подставляйте случайный email посетителя в From; используйте Reply-To.
- Проверьте формы с внешних ящиков после настройки.
Для WordPress используйте надежный SMTP-плагин и не оставляйте важные формы на неаутентифицированном PHP mail, если доставка действительно важна.
Быстрая проверка перед сохранением настроек
- Логин - полный адрес почтового ящика.
- Для входящей почты лучше использовать IMAP 993 SSL/TLS.
- Для исходящей почты используйте SMTP 465 SSL/TLS или 587 STARTTLS/TLS.
- Включите аутентификацию исходящего сервера.
- Если программа снова просит пароль, сначала проверьте этот пароль через webmail.
Если WordPress не отправляет письма
- Используйте SMTP вместо обычного PHP mail.
- Отправляйте письма с ящика на том же домене или через авторизованный внешний сервис.
- Проверьте SPF, DKIM и DMARC.
- Для WooCommerce тестируйте уведомления клиента и администратора.
Пришлите домен, название CMS, что менялось недавно и точный текст ошибки. Поможем проверить PHP, базу, плагины, логи и почту без случайных правок. Написать в чат.
Что проверить при проблемах с почтой
Почтовые ошибки могут быть связаны не только с ящиком, но и с DNS-записями, портами, паролем, лимитами отправки или настройками почтового клиента. Сначала разделите проблему: письма не отправляются, не принимаются или не получается войти в ящик.
- проверьте MX-записи домена;
- убедитесь, что используется правильный логин и сервер;
- для SMTP проверьте порты 465 или 587;
- если письма попадают в спам, проверьте SPF, DKIM и DMARC;
- для форм сайта лучше использовать SMTP-авторизацию.
Не отправляйте постоянный пароль в открытом виде. Для проверки лучше создать временный пароль или тестовый почтовый ящик.
Что подготовить перед обращением
Чтобы поддержка GoodNet быстрее разобралась с вопросом по теме «Почтовые формы сайта и transactional email: почему PHP mail недостаточно», укажите домен, услугу, время появления проблемы, что менялось перед этим и приложите точный текст ошибки или скриншот. Это помогает сразу перейти к диагностике, а не тратить время на уточнение базовых данных.
