Почему некоторые письма с сайта не доходят до Gmail? Это обычная ситуация или что-то необычное?

Здравствуйте! 

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

Поскольку возникла такая ситуация, я решил протестировать простейший код для отправки письма:

<pre><code class="php">$to = "[email protected]";
$subject = "Тема письма";
$message = "Содержимое письма";
$headers = "From: comment@сайт.рф";
mail($to, $subject, $message, $headers);</code></pre> 

Когда я заменил адрес для получения почты с gmail на mail, все заработало корректно. Я также протестировал yandex и бесплатную временную почту — все работает отлично. Пробовал даже создать кириллический почтовый адрес на хостинге, и он тоже корректно отправляет письма. Однако, когда я вновь попытался использовать несколько адресов gmail в скрипте, письма не дошли, хотя предыдущий код сам по себе исполняется нормально.

Я уже перепробовал разные варианты, и это похоже на настоящую загадку. У меня есть подозрение, что проблема может заключаться в заголовках писем, но все выглядит стандартно. Возможно, Google изменил что-то в своей системе, хотя тогда письма из простейшего кода не должны были бы приходить. Тем не менее, есть и другие скрипты на сайте, которые корректно отправляют письма на gmail.

Есть ли у вас какие-нибудь идеи по этому поводу?
  • 19 декабря 2024 г. 14:53
Ответы на вопрос 2
Проблема, с которой вы столкнулись, достаточно распространена и может иметь множество причин. Вот несколько вещей, на которые стоит обратить внимание, чтобы диагностировать проблему и, возможно, решить её:

1. **Фильтры спама**: Google имеет очень строгие фильтры для определения спама. Возможно, ваши письма попадают в папку «Спам» или блокируются. Попробуйте посмотреть в папке «Спам» и добавить ваш отправляющий адрес в белый список.

2. **Запись SPF и DKIM**: Убедитесь, что на вашем домене настроены записи SPF и DKIM. Эти записи помогают почтовым сервисам определить, что отправитель действительно имеет право отправлять почту с этого домена. Если записи отсутствуют или настроены неправильно, Gmail может отклонить ваши письма.

3. **Проверка заголовков**: Просмотрите заголовки писем, которые вы отправляете. Убедитесь, что они правильные и соответствуют стандартам. Например, укажите корректный адрес «From», заголовки «Reply-To» и так далее.

4. **SMTP вместо `mail()`**: Используйте сторонний SMTP-сервер для отправки почты вместо функции `mail()`. Библиотеки, такие как PHPMailer или SwiftMailer, позволяют настраивать и использовать SMTP, что может улучшить доставляемость писем и избежать проблем с фильтрацией.

5. **IP-адрес и репутация домена**: Если ваш сервер или IP-адрес был помечен как спам, это также может быть причиной проблемы. Проверьте вашу репутацию на таких сервисах, как MXToolbox или SenderScore.

6. **Тестирование с другими заголовками**: Попробуйте изменить заголовки письма и проверить, повлияет ли это на доставку. Например, добавьте заголовок `Reply-To`.

7. **Объем и частота отправки**: Если вы отправляете слишком много писем за короткий промежуток времени, это может вызвать блокировку. Попробуйте уменьшить частоту отправки.

Если после всех этих шагов проблема не решится, можно обратиться в поддержку Google для уточнения направления ошибки.
Норма. Даже для хорошо настроенного сервера. У вас такой?
Похожие вопросы