telnet(openssl s_client)でGmail送ってみるよ


GmailのSMTPサーバの基本的な情報はここに載ってる
http://mail.google.com/support/bin/answer.py?answer=78799

サーバ: smtp.gmail.com
ポート: 465 or 587
アカウント: xxxxxxxx@gmail.com
パスワード: yyyyyyyy(Gmailのパスワード)
Use STARTTLS


STARTTLSを使用するのでサーバへの接続は
openssl s_clientを使用します。

$ openssl s_client -starttls smtp -crlf -connect smtp.gmail.com:587


接続できたらehlo

ehlo localhost
250-AUTH LOGIN PLAIN XOAUTH

次はSMTP-AUTH認証を行ないます。
認証方式はPLAINでやってみます。
AUTH PLAINでは

アカウント\0アカウント\0パスワード

をbase64エンコードした文字列を使用します。
ところでヌル文字の扱いがよくわかってないです。Emacsのbase64-encode-string関数使ったんだけど、\0ではだめで、変わりに\000でやったらうまくいった。

auth plain base64エンコードした文字列
235 2.7.0 Accepted

Acceptedが帰ってきたらあとはよくある感じで

mail from: <[email protected]>
250 2.1.0 OK
rcpt to: <[email protected]>;
250 2.1.5 OK
data
354  Go ahead
From: me<[email protected]>;
To: someone<[email protected]>;
Subject: hoge

foobar
.
250 2.0.0 OK 


以上。メールが送れたらめでたし。