Используя Linux или OSx, делайте то, что рекомендовал Сорин, но используйте вместо этого порт 465. 25 - это общий SMTP-порт, но не то, что использует GMail. Кроме того, я не верю, что вы хотите использовать -starttls smtp
openssl s_client -connect smtp.gmail.com:465
Вы должны получить много информации о сеансе SSL и ответ:
220 mx.google.com ...
Введите
HELO smtp.gmail.com
и вы получите:
250 mx.google.com at your service
Оттуда это не так просто, как отправка SMTP-сообщений, поскольку в Gmail предусмотрена защита, гарантирующая, что вы отправляете электронные письма только с учетных записей, которые действительно принадлежат вам. Вместо того, чтобы вводить «Helo», используйте «Ehlo». Я не знаю много о SMTP, поэтому я не могу объяснить разницу, и у меня нет времени много исследовать. Возможно, кто-то с большим знанием может объяснить.
Затем введите «auth login», и вы получите следующее:
334 VXNlcm5hbWU6
По сути, это слово «Имя пользователя», закодированное в Base 64. Используя кодировщик Base 64, такой как , этот , закодируйте свое имя пользователя и введите его. Сделайте то же самое для вашего пароля, который запрашивается следующим. Вы должны увидеть:
235 2.7.0 Accepted
И это все, вы вошли в систему.
Есть еще одна странность, которую нужно преодолеть, если вы используете терминалы OSx или Linux. Простое нажатие клавиши «ВВОД», по-видимому, не приводит к CRLF, который необходим SMTP для завершения сообщения. Вы должны использовать «CTRL + V + ENTER». Итак, это должно выглядеть следующим образом:
^M
.^M
250 2.0.0 OK