#author("2018-07-03T08:07:32+00:00","default:masatomix","masatomix")
#author("2018-07-03T08:07:59+00:00","default:masatomix","masatomix")
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents


Yahoo のメールアドレス(例として xxx@yahoo.co.jp ) にTelnetでメール送信するサンプル。

 ID(アドレス): hoge@example.com   ← 実際はxxx@yahoo.co.jp 
 パスワード: hogehoge

だったとします。


** AUTH PLAINでやる [#q18037e9]
***事前準備: 認証情報の作成 [#j45786b6]
 $ printf "%s\0%s\0%s"  hoge@example.com hoge@example.com hogehoge | base64
 aG9nZUBleGFtcGxlLmNvbQBob2dlQGV4YW1wbGUuY29tAGhvZ2Vob2dl

AUTH PLAINでは上記のように、IDとパスワードを一つにした文字をBase64エンコードして、平文で送信します。

***やってみる [#gbc9a894]
 $ telnet smtp.mail.yahoo.co.jp 587
 Trying 182.22.109.124...
 Connected to smtp.mail.g.yahoo.co.jp.
 Escape character is '^]'.
 220 smtp6003.mail.ssk.ynwp.yahoo.co.jp ESMTP
 EHLO localhost      ←入力
 250-smtp6003.mail.ssk.ynwp.yahoo.co.jp
 250-AUTH LOGIN PLAIN XYMCOOKIE
 250-PIPELINING
 250 8BITMIME
 AUTH PLAIN aG9nZUBleGFtcGxlLmNvbQBob2dlQGV4YW1wbGUuY29tAGhvZ2Vob2dl       ←さっきの認証情報入力
 235 ok, go ahead (#2.0.0)
 MAIL FROM:hoge@example.com      ← 送信元のアカウント
 250 ok
 RCPT TO:hogeto@example.com      ← 送信先のアカウント
 250 ok
 DATA       ←入力
 354 go ahead
 Subject: hogehoge      ←こっから、ドットまでは、メールのデータ部
 From: hoge@example.com
 To: hogeto@example.com
 
 hello!
 
 .
 250 ok 1530601719 qp 9006
 quit      ←入力して、終了
 221 smtp6003.mail.ssk.ynwp.yahoo.co.jp
 Connection closed by foreign host.
 $

送信できたかとおもいます。


**AUTH LOGINでやる [#if04af9f]
***事前準備: 認証情報の作成 [#m9fc0ad4]
 $ printf "hoge@example.com" | base64
 aG9nZUBleGFtcGxlLmNvbQ==
 $ printf "hogehoge" | base64
 aG9nZWhvZ2U=

AUTH LOGINでは上記のように、IDとパスワードを別々にBase64エンコードして、平文で送信します。


***やってみる [#p3065e76]
 $ telnet smtp.mail.yahoo.co.jp 587
 Trying 182.22.109.124...
 Connected to smtp.mail.g.yahoo.co.jp.
 Escape character is '^]'.
 220 smtp6010.mail.ssk.ynwp.yahoo.co.jp ESMTP
 EHLO localhost      ←入力
 250-smtp6010.mail.ssk.ynwp.yahoo.co.jp
 250-AUTH LOGIN PLAIN XYMCOOKIE
 250-PIPELINING
 250 8BITMIME
 AUTH LOGIN      ←入力
 334 VXNlcm5hbWU6     ← Username: って聞いてきてるので
 aG9nZUBleGFtcGxlLmNvbQ==       ←さっきの認証情報(ID)入力
 334 UGFzc3dvcmQ6      ← Password: って聞いてきてるので
 aG9nZWhvZ2U=             ←さっきの認証情報(パスワード)入力
 235 ok, go ahead (#2.0.0)
 MAIL FROM:hoge@example.com      ← 送信元のアカウント
 250 ok
 RCPT TO:hogeto@example.com      ← 送信先のアカウント
 250 ok
 DATA      ←こっから、ドットまでは、メールのデータ部
 354 go ahead
 Subject: hogehoge
 From: hoge@example.com
 To: hogeto@example.com
 
 hello!
 .
 quit250 ok 1530602307 qp 28758
 
 221 smtp6010.mail.ssk.ynwp.yahoo.co.jp


送信できたかとおもいます。


**関連リンク [#w7b3f614]
-[[telnetからSMTPを使ってメール送信 - Qiita>https://qiita.com/sheepland/items/973198fa80f0213fe5a1]]
-[[telnetでメール送信>http://ash.jp/net/telnet_smtp.htm]]


----
この記事は
#vote(おもしろかった,そうでもない)
- とあるサーバアプリだと、設定に「SMTP Domain」というフィールドがあります。その設定を入れると[Domain名]\0[Username]という値がBase64されて、AUTH LOGIN に渡されてました。 -- [[きの]] &new{2018-07-03 (火) 16:52:21};
- とあるサーバアプリだと、設定に「SMTP Domain」というフィールドがあります。その設定を入れると[Domain名]\0[Username]という値がBase64されて、AUTH LOGIN に渡されてました。つまり
 printf "%s\0%s" [Domain名] [Username] | base64
です -- [[きの]] &new{2018-07-03 (火) 16:52:21};


#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS