Несмотря на то, что Haskimail работает и не сообщает о проблемах на статусной странице, могут возникнуть случаи, когда ваше приложение не может подключиться к Haskimail. Наиболее распространённые причины таких проблем связаны с изменениями в настройках сети, которые могли быть сделаны в вашей среде или вашим хостинг-провайдером без вашего ведома.\
\
Что нужно проверить:

* Ваш сервер может разрешить IP-адреса для подключения к нашим API или SMTP серверам.

* Вы можете подключиться к нашим серверам с вашего сервера. Порты 80 или 443 для API, и порты 25, 465 или 2525 для SMTP.

* При обращении к нам, укажите публичный IP-адрес (а) вашего сервера, чтобы мы могли быстрее исследовать логи для решения проблемы с подключением.

Ниже приведены команды, которые мы просим вас выполнить на вашем сервере. Если вы можете предоставить полный вывод этих команд при обращении в службу поддержки, это поможет нам быстрее решить проблему с подключением.

## **Устранение проблем с подключением к API**

Сначала убедитесь, что DNS работает корректно:

```
nslookup api.haskimail.ru
```

Это должно вернуть публичный IP для нашего API. Если запрос не удастся, проверьте, можете ли вы выполнить запросы для других публичных доменов, например, [example.com](http://example.com), [yahoo.com](http://yahoo.com), [google.com](http://google.com) и т. д.\
\
Затем проверьте, что вы можете установить соединение и скачать контент с нашего API:

```
curl -vvv https://api.haskimail.ru
```

Если это не удалось, и ваши системные сертификаты устарели, curl может не проверить TLS-соединение с API. Попробуйте выполнить команду без проверки TLS:

```
curl -vvv -k https://api.haskimail.ru
```

Если это всё равно не работает, попробуйте подключиться без шифрования:

```
curl -vvv http://api.haskimail.ru
```

Если вас беспокоят проблемы с задержкой, полезно будет выполнить команду с использованием time:

```
time curl -vvv https://api.haskimail.ru
```

Если все вышеуказанные шаги прошли успешно, тогда стоит проверить код.

## **Устранение проблем с подключением к SMTP**

Сначала убедитесь, что SMTP включен на сервере Haskimail. SMTP включен по умолчанию на новых серверах Haskimail, но если он был отключён, включите его снова в настройках канала (Канал > Настройки).\
\
Как и в случае с API, мы хотим убедиться, что ваше соединение может разрешить DNS для наших SMTP серверов и что подключение возможно.

```
nslookup smtp.haskimail.ru
```

Это должно вернуть один из наших публичных SMTP IP.\
Затем проверьте, что вы можете подключиться к одному из следующих портов: 25, 465 или 2525.

**Примечание:** Некоторые интернет-провайдеры и хостинг-провайдеры блокируют эти порты. В других случаях они перенаправляют этот трафик на свои собственные SMTP серверы.

Попробуйте открыть соединение с помощью telnet и отправить две команды (EHLO <hostname>, затем QUIT), как показано ниже:

```
telnet smtp.haskimail.ru <порт>
EHLO localhost
QUIT
```

Пример успешного теста:

```
telnet smtp.haskimail.ru 25
Trying 147.75.195.176...
Connected to smtp.haskimail.ru.
Escape character is '^]'.
220 smtp.haskimail.ru ESMTP p-pm-smtp02-pktewr1
EHLO localhost
250-smtp.haskimail.ru
250-PIPELINING
250-SIZE 20480000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN CRAM-MD5 DIGEST-MD5
250-AUTH=PLAIN LOGIN CRAM-MD5 DIGEST-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
```

Если тест прошёл успешно, вы можете отправить простое тестовое письмо с помощью командной утилиты swaks:

```
swaks --auth --tls -s smtp.haskimail.ru --to="you@example.com" --from="your-sender-signature@example.com" --port=25
```

При запуске этой команды вам нужно будет ввести ваше имя пользователя и пароль — оба значения являются вашим Server API Token.\
\
Если все эти шаги прошли успешно, тогда стоит проверить код SMTP-клиента в вашем приложении.