Пытаюсь установить соединение с smtp.mail.ru (имя хоста не особо важно, ибо с другими хостами та же проблема).
Код (упрощённо) такой:
Либо напрямую вызываю client.connect с текстовым именем хоста:
Включив режим оладки в IDE, увидел в последовательном порту следующее сообщение:
[hostByName] Host: smtp.mail.ru lookup error: -5!
Т.е. в обоих случаях не получается получить IP-адрес хоста по его имени.
Порывшись в исходниках библиотек, нашёл, что данное сообщение выводится в методе "ESP8266WiFiGenericClass::hostByName" после вызова функции "dns_gethostbyname".
Судя по описанию функции espconn_gethostbyname в SDK, ошибка "-5" - это "ESPCONN_INPROGRESS - error code : already connected".
Что это может значить? Куда оно "already connected"?
Пару дней назад абсолютно тот же код работал, иногда отлично, иногда через раз. А вот сегодня вообще не работает.
В админке моего WiFi-роутера выводятся следующие адреса DNS:
85.21.192.5
213.234.192.7
Я попробовал принудительно задать эти DNS для ESP8266:
Не помогает.
В чём может быть проблема или куда "копать"?
Код (упрощённо) такой:
Код:
WiFi.begin(ssid, ssid);
while (WiFi.status() != WL_CONNECTED) delay(500);
IPAddress hostIP;
if (!WiFi.hostByName("smtp.mail.ru", hostIP))
{
Serial.println("Couldn't get IP");
return;
}
WiFiClientSecure client; // "WiFiClient client;" - тоже пробовал
if (!client.connect(hostIP, 465))
{
Serial.println("Couldn't connect");
return;
}
Код:
if (!client.connect("smtp.mail.ru", 465))
{
Serial.println("Couldn't connect");
return;
}
[hostByName] Host: smtp.mail.ru lookup error: -5!
Т.е. в обоих случаях не получается получить IP-адрес хоста по его имени.
Порывшись в исходниках библиотек, нашёл, что данное сообщение выводится в методе "ESP8266WiFiGenericClass::hostByName" после вызова функции "dns_gethostbyname".
Судя по описанию функции espconn_gethostbyname в SDK, ошибка "-5" - это "ESPCONN_INPROGRESS - error code : already connected".
Что это может значить? Куда оно "already connected"?
Пару дней назад абсолютно тот же код работал, иногда отлично, иногда через раз. А вот сегодня вообще не работает.
В админке моего WiFi-роутера выводятся следующие адреса DNS:
85.21.192.5
213.234.192.7
Я попробовал принудительно задать эти DNS для ESP8266:
Код:
WiFi.begin(ssid, ssidPassword);
IPAddress ip(192, 168, 1, 40);
IPAddress gateway(192, 168, 1, 1); // это мой роутер
IPAddress subnet(255, 255, 255, 0);
IPAddress dns1(85, 21, 192, 5);
IPAddress dns2(213, 234, 192, 7);
WiFi.config(ip, gateway, subnet, dns1, dns2);
В чём может быть проблема или куда "копать"?