Как использовать имя пользователя и пароль в AUTH PLAIN? - PullRequest
8 голосов
/ 03 августа 2011

Я пытаюсь отправить электронную почту, используя сервер telnet и smtp.mail.yahoo.com. когда я пытаюсь аутентифицировать себя на сервере, используя свой почтовый идентификатор и пароль Yahoo. сервер дал мне ошибку;

501 malformed auth input (#5.5.4)

Я использую механизм AUTH PLAIN. Я не знаю, как объединить имя пользователя и пароль. И после этого преобразовать его в base64, а затем отправить.

Может кто-нибудь подсказать, как объединить имя пользователя и пароль для AUTH PLAIN? Спасибо

1 Ответ

13 голосов
/ 03 августа 2011

При использовании AUTH PLAIN учетные данные следует отправлять в соответствии с этой грамматикой (от RFC 4616 ):

message   = [authzid] UTF8NUL authcid UTF8NUL passwd
authcid   = 1*SAFE ; MUST accept up to 255 octets
authzid   = 1*SAFE ; MUST accept up to 255 octets
passwd    = 1*SAFE ; MUST accept up to 255 octets
UTF8NUL   = %x00 ; UTF-8 encoded NUL character
[...]

Похоже, что для SMTP-серверов пусто authzid, поэтому для вас должно получиться рабочее сообщение AUTH PLAIN:

echo -ne "\0username\0password"|base64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...