Иногда приложение не может подключиться к Haskimail, хотя сам сервис работает. Чаще всего причина — изменения в настройках сети, которые сделали в вашей инфраструктуре или у хостинг-провайдера.
Что проверить в первую очередь:
- Разрешены ли на вашем сервере исходящие подключения к Haskimail. Если вы ограничиваете исходящий трафик, разрешите диапазон
185.47.165.0/24. - Открыты ли нужные порты: 443 для API и 587, 465, 25 или 2525 для SMTP.
Ниже — команды для диагностики. Если проблему не удалось решить, напишите в поддержку, приложите полный вывод этих команд и укажите публичный IP-адрес вашего сервера. Так мы быстрее найдём причину в логах.
Проблемы с подключением к API
Сначала проверьте, что работает DNS:
nslookup api.haskimail.ru
Команда должна вернуть IP-адрес нашего API. Если ответа нет, проверьте, разрешаются ли другие домены, например example.com или ya.ru. Если не разрешается ни один, проблема в настройках DNS вашего сервера.
Затем проверьте, что соединение с API устанавливается:
curl -v https://api.haskimail.ru
Если в выводе есть ошибка проверки сертификата, скорее всего, на сервере устарели корневые сертификаты. Обновите пакет ca-certificates средствами вашей операционной системы и повторите проверку. Не отключайте проверку сертификатов в рабочем приложении: так ваш API-ключ может попасть к посторонним.
Если вас беспокоят задержки, измерьте время запроса:
time curl -v https://api.haskimail.ru
Если все проверки прошли успешно, ищите причину в коде приложения.
Проблемы с подключением по SMTP
Убедитесь, что для сервера включена отправка по SMTP. На новых серверах она включена по умолчанию. Если её отключали, включите в настройках сервера.
Проверьте DNS:
nslookup smtp.haskimail.ru
Затем проверьте, что порт доступен. Некоторые хостинг-провайдеры блокируют почтовые порты или перенаправляют трафик на свои SMTP-серверы. Для проверки порта 587 или 25 подключитесь через telnet и отправьте команды EHLO и QUIT:
telnet smtp.haskimail.ru 587
EHLO localhost
QUIT
Если соединение установлено, сервер ответит строкой, которая начинается с 220, а на команду EHLO вернёт список возможностей со строками 250, в том числе 250-STARTTLS.
Порт 465 работает сразу по SSL, поэтому telnet для него не подойдёт. Используйте openssl:
openssl s_client -connect smtp.haskimail.ru:465 -quiet
Если порт доступен, отправьте тестовое письмо утилитой swaks. Вместо ЛОГИН подставьте логин из SMTP-реквизитов канала — пароль swaks спросит сам и не сохранит его в истории команд:
swaks --server smtp.haskimail.ru --port 587 --tls \
--auth-user ЛОГИН \
--from sender@example.com --to you@example.com
Если тестовое письмо дошло, ищите причину в настройках SMTP-клиента вашего приложения. Если порт заблокирован, прочитайте статью «Что делать, если порт 25 заблокирован».