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


GmailSMTPサーバの基本的な情報はここに載ってる
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エンコードした文字列を使用します。
ところでヌル文字の扱いがよくわかってないです。Emacsbase64-encode-string関数使ったんだけど、\0ではだめで、変わりに\000でやったらうまくいった。

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

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

mail from: <xxxxxxxx@gmail.com>
250 2.1.0 OK
rcpt to: <yyyyyyyy@hoge.jp>;
250 2.1.5 OK
data
354  Go ahead
From: me<xxxxxxxxx@gmail.com>;
To: someone<yyyyyyyyy@hoge.jp>;
Subject: hoge

foobar
.
250 2.0.0 OK 


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