2011-08-03 67 views
4

私はtelnetとsmtp.mail.yahoo.comサーバを使用して電子メールを送信しようとしています。自分のヤフーメールIDとパスワードを使用してサーバーで自分自身を認証しようとすると、サーバーは私にエラーを与えました。AUTH PLAINでユーザー名とパスワードを使用する方法は?

501 malformed auth input (#5.5.4) 

私はAUTH PLAINメカニズムを使用しています。私はユーザー名とパスワードを組み合わせる方法を知らない。その後、それをbase64に変換して送信します。

誰かがAUTH PLAINのユーザー名とパスワードを組み合わせる方法を提案できますか?おかげでAUTH PLAINで

答えて

10

は、資格情報が(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 
[...] 

したがって、これは作業AUTH PLAINを計算する必要があり、SMTPサーバ用の空のauthzidを持っている一般的なようですあなたのためのメッセージ:

echo -ne "\0username\0password"|base64 
+0

my yahoo IDは "[email protected]"で、パスワードは "password"です。どのように私はそれらを組み合わせるだろう。私はあなたの答えに従ったが、うまくいかなかった。ありがとう –

+0

どうしたのですか?サーバーからどのようなエラーメッセージを受け取りましたか? base64でエンコードされた文字列を(例えばhttp://www.opinionatedgeek.com/dotnet/tools/base64decode/で)デコードすると意味がありますか? –

+0

文字列「\ [email protected] \ 0pasword」を引用符で囲んで、ここにオンラインでエンコードします([リンク](http://www.tools4noobs.com/online_php_functions/base64_encode/))。そして、私はこの文字列をサーバに与え、それは "501の不正な認証入力(#5.5.4)"と言う。 –

関連する問題