Часто Задаваемые Вопросы

Не работает отправка писем, что делать?

Предварительные проверки..
Я отправляю письмо через РНР скрипт на хостинге.
Я отправляю письмо через удаленный почтовый клиент.

Предварительные проверки.

Проверка домена. Перейдите в браузере на домен, с которого выполняется отправка (в почтовом ящике домен указан после символа @). Домен должен открываться в браузере. Если домен недоступен по какой-либо причине - нужно решить изначально эту проблему, так как почта не будет работать на недоступном домене.

Проверка хостинга. Проверьте оплачен ли ваш хостинг, не блокируется ли он по какой-либо другой причине. Почта не будет работать, если хостинг заблокирован за неуплату. Если у Вас нет доступа по адресу сайта или к панели управления хостингом - обратитесь в техподдержку для проверки на наличие блокировки IP.

Проверка нейм-серверов. Проверьте указаны ли наши НС для домена через сервис whois. Для проверки можно воспользоваться онлайн сервисами проверки whois. Узнать актуальные для вашего хостинг-аккаунта НС можно в биллинге, в разделе Заказы - Данные сервера.
(Если вы все же осознанно используете для домена сторонние НС - проверять и настраивать доменные записи нужно на выбранных НС).

Проверка доменных записей. Перейдите в панель хостинга, раздел Доменные имена - Записи. Проследите чтобы для домена существовала запись с типом МХ. Без этой записи почта не будет работать. Если записи нет - создайте ее по шаблону:
domain.com. МХ 10 mail.domain.com
Также проверьте наличие записей dkim, spf, dmarc.
Запись spf создается автоматически при добавлении домена в панели хостинга, она имеет вид
domain.com. TXT v=spf1 ip4:xxx.xxx.xxx.xxx a mx ~all
Если такой записи нет - создайте ее по шаблону выше. Вместо "xxx.xxx.xxx.xxx" укажите IP адрес нашего сервера (он указан в этом же разделе в записях типа А).
Записи dkim и dmarc можно добавить в разделе Почтовые домены - (выделите домен) - Изменить. Для этого отметьте галочками опции "Включить DKIM для домена" и "Включить DMARC для домена" и сохраните форму.
Проверьте отправку почты через час после настройки доменных записей. Многие проблемы в работе почты решаются уже на этом этапе.

После проверки все еще наблюдаются проблемы? Нужно проверить отправку писем через веб-клиент. Он находится в панели хостинга, в разделе Почтовые ящики - (выделите ящик) - Roundcube. Для проверки используйте сервис mail-tester.com . Перейдите на этот сервис, скопируйте емейл, указанный на нем и укажите этот емейл в качестве получателя письма в roundcube. Заголовок и текст письма указывайте произвольные. После отправки письма нажмите на кнопку проверки на mail-tester.com и дождитесь отчета (он формируется в среднем в течение 2-3минут).

Если при отправке из roundcube сервис пишет что не получил ваше письмо или во время отправки возникла ошибка - обратитесь в техподдержку, для более детальной проверки.
Если же письмо из roundcube доставлено - нужно проверять ваш способ отправки письма. Каким способом Вы выполняете отправку?




Я отправляю письмо через РНР скрипт на хостинге.
Если отправка через roundcube проходит без ошибок, то проблем с почтой на уровне хостинга нет. Нужно смотреть детальнее ваш скрипт отправки. Стоит проверить такие моменты:

  • Самый распространенный случай - Адрес в sendmail_path. Измените email адрес в настройках PHP. По умолчанию это [email protected] и письма с подобным отправителем не будут доставляться на сервера mail.ru. Изменить email можно в панели ISPmanager, раздел PHP - выделяете нужную вам версию PHP - Настройка - пункт "sendmail_path" - Изменить и далее заменяете [email protected] на ваш email. Указанным вами email должен быть на вашем домене(как создать email)


  • Нет ли синтаксических ошибок в коде. При наличии синтаксических или логических ошибок в коде скрипта отправки в лог ошибок будет вписано сообщение с информацией об ошибке. Просмотреть лог можно в панели хостинга, в разделе Журналы - *.error.log.

  • Правильно ли указан отправитель. Желательно указывать в качестве отправителя почтовый ящик в том же домене, с которого отправляется письмо. К примеру для сайта domain.com таким почтовым ящиком может быть [email protected]. Создать его можно в панели хостинга, в разделе Почтовые ящики. Лучше не указывать в качестве отправителя пользовательские почтовые ящики gmail, mail.ru, yandex. Если же указан вовсе несуществующий почтовый ящик (к примеру [email protected]) - письмо будет с высокой вероятностью помечено как спам. Отправитель указывается непосредственно в скрипте отправки, через заголовок From.

  • Указан ли адрес возврата. При отправке функцией mail укажите принудительно адрес возврата. Это делается через опцию -f в функции mail, по примеру:
    mail($mailRecipient, "TEST mail", $message, $headers, '-f '.$mailSender);
    При отправке по SMTP с авторизацией адрес возврата по умолчанию будет таким же как и адрес отправителя.

  • Нет ли ошибок в путях. Особенно актуально для скриптов отправки на основе phpmailer. В начале скрипта отправки прописано подключение файла с библиотекой phpmailer, через функции include, require или require_once. Проверьте чтобы пути, указанные в функциях подключения реально существовали на диске. В linux, в отличие от windows, в путях имеет значение регистр букв. Если, к примеру, в скрипте указан путь class/phpmailer.php, а на диске он назван как class/PHPmailer.php - такой скрипт на хостинге не будет отрабатывать, так как имена не идентичны. В windows же такой скрипт будет работать. Чтобы это исправить нужно или поменять пути в скрипте, или переименовать папки и файлы, так чтобы они были идентичны указанным в скрипте.

  • Настройки подключения SMTP. Если используете отправку по SMTP - проверьте указанные в скрипте настройки подключения. Через roundcube проверьте, подходит ли указанный в скрипте пароль для входа в указанный почтовый ящик. Если нет - сбросьте пароль от почтового ящика. В качестве хоста подключения можно использовать адрес вашего сайта.

  • Настройки шифрования в phpmailer. Для phpmailer часто проблема возникает с настройками шифрования. Если опции шифрования для вас не критичны - самое простое решение это отключение шифрования. Для этого укажите такие настройки в скрипте:
    $mail->SMTPAutoTLS = false;
    $mail->SMTPSecure = false;
    $mail->Port = 25;
    Для более детальной отладки скрипта нужно обратиться к своему разработчику.




Я отправляю письмо через удаленный почтовый клиент.

Проверьте отправку письма через roundcube в панели хостинга. Если там письмо отправляется, а в вашем почтовом клиенте нет - проблема связана с настройками почтового клиента. Большинство подобного рода проблем решаются через:

  • Замену хоста для подключения. В общем случае стоит использовать в качестве хоста адрес mail.ваш_домен. Если же с ним наблюдаются проблемы - попробуйте заменить хост на адрес вашего сервера (отображается в биллинге, в разделе Заказы - Данные сервера).

  • Отключение шифрования. В настройках подключения поставьте порт 25, без шифрования.

  • Устранения блокировки провайдером. Интернет провайдеры иногда блокируют 25 порт в своей сети. Обращение к провайдеру с просьбой проверки (и снятия) блокировки может помочь.

  • Смену почтового клиента. Если для Вас не принципиально через какой почтовый клиент работать - есть смысл проверить подключение в другом почтовом клиенте.



 

Вернуться к содержанию