[[Postfix]]

~

*ポート25によるtelnetコマンドでのメール送信 [#i809519f]
 
 
 [root@www13154uf ~]# telnet localhost 25	<-- localhostに25番で接続。
 Trying 127.0.0.1...
 Connected to localhost.
 Escape character is '^]'.
 220 mail.hogehoge.jp ESMTP unknown
 helo localhost					<-- ご挨拶
 250 mail.hogehoge.jp
 mail from:hogehogehoge@inamuu.com		<-- メール送信元
 250 2.1.0 Ok
 rcpt to:hogehoge@hogehogehoge.com		<-- メール送信先
 250 2.1.5 Ok
 data						<-- メールの本文を書くよと宣言
 354 End data with <CR><LF>.<CR><LF>
 test mail dayo					<-- 本文を書いてみる
 .						<-- ピリオドは本文終了の意味
 250 2.0.0 Ok: queued as 7AAAE60687
 quit						<-- メール送信の終了
 221 2.0.0 Bye
 Connection closed by foreign host.

*ポート587で送信認証を通してメール送信 [#j072af18]
*** パターン1 [#g134408e]
 telnet localhost 587
 Trying 127.0.0.1...
 Connected to localhost.
 Escape character is '^]'.
 220 mail.hogehoge.com ESMTP unknown
 ehlo localhost
 250-mail.hogehoge.com
 250-PIPELINING
 250-SIZE 10240000
 250-VRFY
 250-ETRN
 250-AUTH PLAIN LOGIN
 250-AUTH=PLAIN LOGIN
 250-ENHANCEDSTATUSCODES
 250-8BITMIME
 250 DSN
 auth plain base64エンコードしたパスワード   <--- ここで認証
 235 2.7.0 Authentication successful
 mail from:hoge@hogehoge.com       <--- 送信元 
 250 2.1.0 Ok
 rcpt to:test@hoge2.com          <--- 送信先
 250 2.1.5 Ok
 data
 354 End data with <CR><LF>.<CR><LF>
 test 587
 .
 250 2.0.0 Ok: queued as CA90442C1E

***パターン2 [#yfee840c]
 $ telnet smtp.hogehoge.com 587   <--- 587への接続 
 Trying ::1...
 Connected to localhost.
 Escape character is '^]'.
 220 smtp.hogehoge.com ESMTP qpsmtpd 0.80 ready; send us your mail, but not your spam.
 ehlo smtp.hogehoge.com           <--- こんにちは
 250-smtp.hogehoge.com Hi Unknown [172.19.0.1]
 250-PIPELINING
 250-8BITMIME
 250-SIZE 10240000
 250 AUTH PLAIN LOGIN CRAM-MD5
 auth plain base64エンコードしたパスワード   <--- 認証情報を入力
 235 Authentication successful for test@hogehoge.com - authsql/plain
 mail from: <test@hogehoge.com>
 250 <test@hogehoge.com>, sender OK - how exciting to get mail from you!
 rcpt to: <info@piyopiyo.com>
 250 <info@piyopiyo.com>, recipient ok
 data
 354 go ahead
 Suebject: TEST MAIL 587                <--- 件名
                                         <--- 空行
 TEST MAIL 587                          <--- 本文
 .                                      <--- 終わりを表すピリオド
 250 Queued!  (Queue-Id: AF3EC34C5)
 quit                                           <--- 接続おわり
 221 smtp.hogehoge.com closing connection. Have a wonderful day.
 Connection closed by foreign host.

***base64エンコードするためのコマンド [#wa0aa6b6]
 printf "%s\0%s\0%s" ユーザー名 ユーザー名 パスワード | openssl base64 -e | tr -d '\n'; echo

***base64デコード [#bac13e46]
 echo "文字列" | openssl enc -d -base64

*ポート465でAUTH LOGINでSMTP認証をして送信する [#ld763683]
***最初にユーザー名とパスワードをbase64でエンコードする [#q70249cd]
 printf ユーザー名 | base64
 printf パスワード | base64

*** openssl s_clientで送信する [#b588fd68]
 openssl s_client -connect メールサーバー:465
 helo メールサーバー
 250 メールサーバー
 AUTH LOGIN
 334 VXNlcm5hbWU6
 エンコードしたユーザー名
 334 UGFzc3dvcmQ6
 エンコードしたパスワード
 235 ok authed
 mail from: 送信元
 250 ok
 rcpt to: 宛先
 250 ok
 data
 354 Enter mail
 test mail
 .
 250 ok 1476933774 qp 23764


*** CRAM-MD5認証 [#rf77117f]
 $ telnet localhost 10025
 ehlo localhost

cram-md5 認証を選択する
 auth cram-md5
 334 PDMzMzMwNTc5NjkuMTI2NTU5NzZAc210cfAwMC5sb2NgbGRfbWFpbj2=      <-- 毎回変わる

334の後の文字列をbase64でデコードする
 $ cat base64.txt
 PDMzMzMwNTc5NjkuMTI2NTU5NzZAc210cfAwMC5sb2NgbGRfbWFpbj2=
 $ base64 -D base64.txt
 <2939882246.12656088@smtp.localdomain>

上記文字列を下記ファイルへ貼り付けして、phpを実行する
 <?php
 print hash_hmac( "md5", "<2939882246.12656088@smtp.localdomain>", "ここにパスワード入れる" )
 ?>
 $ php md5.php
 2d3f47f72cf04509098cc91fdfebce22

ユーザー名と上記値をbase64で符号化する
 $ printf "ユーザー名 2d3f47f72cf04509098cc91fdfebce22" | base64
 aW5mb0Bnb29wZXRlc3QuY29tIDJkM2Y0N2Y3MmNmMDQ1MDkwOThjYzkxZmRmZWJjZTIy

表示された値をサーバーに送る
 auth cram-md5
 334 PDI5Mzk4ODIyNDYuMTI2NTYwODhAc210cDAwMC5sb2NhbGRvbWFpbj4=
 aW5mb0Bnb29wZXRlc3QuY29tIDJkM2Y0N2Y3MmNmMDQ1MDkwOThjYzkxZmRmZWJjZTIy
 235 2.7.0 Authentication successful

OK

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