Используя MS Visual C ++ и Boost asio, я пытаюсь добавить возможность отправки электронной почты в приложение с использованием протокола SMTP.
Проблема возникает, когда я пытаюсь аутентифицировать соединение.Вот снимок ситуации, предполагающей попытки подключения к учетной записи на сервере поставщика 1 & 1, который использует собственный сервер с именем «nemesis».
( S : ответ сервераи C : это команда клиента) для целей тестирования, мы предполагаем, что пытаемся отправить сообщение от учетной записи sender@mysite.com на target@mysite.com
C: connect with hostname <smtp.1and1.es> and port <587>
S: 220 smtp.1and1.es (mreu1) Welcome to Nemesis ESMTP server
C: EHLO mysite.com
S: 250-smtp.1and1.es
S: 250-STARTTLS
S: 250-AUTH LOGIN PLAIN
S: 250-AUTH=LOGIN PLAIN
S: 250-PIPELINING
S: 250-SIZE 120000000
S: 250 HELP
C: AUTH LOGIN
S: 504 Unknown authentication mechanism
Насколько я знаю, сервер предлагает пользователю два режима аутентификации: LOGIN
и PLAIN
, и мы пытаемся использовать первый (наиболее часто используемый режим).
Предположительно, с этого моментасервер должен ответить с запросами имени пользователя и пароля.Например:
S: 334 VXNlcm5hbWU6
C: avlsdkfj <- Usename (base-64 encoded)
S: 334 UGFzc3dvcmQ6
C: lkajsdfvlj <- Password (base-64 encoded)
Я пробовал команду auth login
(нижний регистр) и auth=login
без успеха.
Я предполагал, что после получения доступа к остальной частиПроцесс стандартный.Это сказать как:
C: "MAIL FROM:<....>\r\n"
S: 250 .....
C "RCPT TO: ..\r\n"
S: 250 ...
C: "DATA\r\n"
S: 354 ...
C: bla, bla, bla <- message- body
C: \r\n.\r\n
S: 250 ...
C: "QUIT\r\n"
S: 221 ...