telnet で SMTP してみた
目的
というわけでやってみる
$ telnet smtp.mail.yahoo.co.jp 25 # SMTP サーバへ接続する Trying 203.216.247.162... Connected to smtp.mail.yahoo.co.jp. Escape character is '^]'. 220 smtp06.mail.tnz.yahoo.co.jp ESMTP HELO localhost # 自分のホスト名を伝える 250 smtp06.mail.tnz.yahoo.co.jp MAIL FROM:xxx@yahoo.co.jp # 差し出しアドレスを入力する 521 smtp.mail.yahoo.co.jp closing transmission channel. You must be pop-authenticated before you can use this smtp server, and you must use your yahoo mail address for the Sender/From field. Connection closed by foreign host.
。。。え?なんかはじかれたよ?
SMTP使う前にPOPの認証しろよって言われてるよね
というわけでPOPの認証をする
$ telnet pop.mail.yahoo.co.jp 110 # POP サーバへ接続する Trying 203.216.227.147... Connected to pop.mail.yahoo.co.jp. Escape character is '^]'. +OK hello from popgate(2.35.15) USER xxx # ユーザ名を入力する +OK password required. PASS **** # パスワードを入力する +OK maildrop ready, 10 messages (95373 octets) (87618) QUIT # コネクションを閉じる +OK server signing off. Connection closed by foreign host.
SMTP に再チャレンジ
$ telnet smtp.mail.yahoo.co.jp 25 # SMTP サーバへ接続する Trying 203.216.247.162... Connected to smtp.mail.yahoo.co.jp. Escape character is '^]'. 220 smtp02.mail.tnz.yahoo.co.jp ESMTP EHLO localhost # 自分のホスト名を伝える 250-smtp02.mail.tnz.yahoo.co.jp 250-AUTH LOGIN PLAIN XYMCOOKIE 250-PIPELINING 250 8BITMIME MAIL FROM:xxx@yahoo.co.jp # 差し出しアドレスを入力する 250 ok RCPT TO:xxx@yahoo.co.jp # 宛先アドレスを入力する 250 ok DATA # FROM, SUBJECT, 本文を入力する 354 go ahead FROM:xxx SUBJECT:test this is a test mail . 250 ok 1271948514 qp 89919 QUIT # コネクションを閉じる 221 smtp02.mail.tnz.yahoo.co.jp Connection closed by foreign host.
まとめ
- メールの送信がどのような流れで行われているのかが理解できた
- HTTP も SMTP も結局決まったフォーマットの文字列を送受信することでいろいろなことを実現しているだなと思った
参考
- http://help.yahoo.co.jp/help/jp/mail/mailsoft/mailsoft-01.html
- http://www.puni.net/~mimori/smtp/ref.html
- http://homepage3.nifty.com/networks/html/telnetwinsmtp.htm
- http://lab.klab.org/young/2008/10/smtp%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E6%89%93%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86/