Я создаю простую программу с Arduino IDE, которая должна отправлять электронную почту, используя NodeMCU с чипом esp8266. Однако после попытки отправить команду AUTH LOGIN я получаю нарушение протокола SMTP.
Я пытался использовать порт SSL, однако, поскольку это привело только к тайм-ауту, я переключился на порт TLS 587. После полученияошибка, что требовалась команда STARTTLS перед попыткой авторизации, я реализовал это. Может ли это быть проблемой?
Вот код:
if (espClient.connect(server, 587) == 1)
{
Serial.println(F("connected"));
}
else {
Serial.println(F("connection failed"));
return 0;
}
if (!emailResp())
return 0;
Serial.println(F("Sending EHLO"));
espClient.println("EHLO www.gmail.com");
if (!emailResp())
return 0;
espClient.println("STARTTLS");
Serial.println(F("Sending auth login"));
espClient.println("AUTH LOGIN");
if (!emailResp())
return 0;
А вот вывод:
220 smtp.gmail.com ESMTP b2sm4662866ilb.71 - gsmtp
Testing
Sending EHLO
250-smtp.gmail.com at your service, [134.129.224.6]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
Sending auth login
451 4.5.0 SMTP protocol violation, see RFC 2821 b2sm4662866ilb.71 - gsmtp