Как я могу отправлять электронные письма через SMTP Gmail через OpenSSL (в Windows)?
Я знаю, что для SMTP-сервера требуется протокол TLS, поэтому я использую OpenSSL (в Windows).
openssl s_client -connect smtp.gmail.com:465 -crlf
Теперь я знаю, что мне нужно закодировать строку (в основном x00myemailx00password
), в которой есть моя учетная запись и пароль, используя base64. Все работает довольно хорошо:
AUTH PLAIN <encodedString>
235 2.7.0 Accepted
Проблема в том, когда я пытаюсь написать свое сообщение:
MAIL FROM:<myemail>
250 2.1.0 OK qwertyzxcv.1 - gstmp
RCPT TO:<myemail>
RENEGOTIATING
depth=1 C = US, O = Google Inc, CN = Google Internet Authority
verify error:num=20:unable to get local issuer certificate
verify return:0
Правда в том, что я не понимаю этого сообщения об ошибке. Нужно ли мне генерировать какой-то сертификат? Если да, то как мне это сделать (опять же, на Окна)?
РЕДАКТИРОВАТЬ[0]: Я наконец-то решил проблему. Вы ДОЛЖНЫ написать команду rcpt
в нижнем регистре, потому что R
заставляет OpenSSL пересматривать условия. Но теперь у меня появилась новая проблема. Похоже, что SMTP-сервер не может распознать команду de DATA
:
DATA
502 5.5.1 Unrecognized command qwertyzxcv.1 -gsmtp