Email protocol
SMTP
Command | description |
---|---|
HELO | メールの授受ができる状態の準備 |
MAIL FROM | メールの発信者名の通知 |
RCPT TO | メールの受信者名の通知 |
DATA | メッセージの送信開始の可否確認 |
QUIT | 正常なコネクション解法 |
RSET | 強制的なコネクション解法 |
AUTH LOGIN | ログイン。 実行後にBase64エンコードされたユーザ名、パスワードを続けて入力する。 |
Command
-
Connect withouut encryption
Use
telnet
and put host and port.telnet host.com 587
-
Connect with encryption
Use
openssl
openssl s_client -connect host.com openssl s_client -connect host.com:993
You have to be careful when you input user name and password.
-
AUTH LOGIN
printf 'username' | base64 # username printf 'password' | base64 # password
-
AUTH PLAIN
printf "%s\0... tr -d '\n' | pbcopy
-
Example
telnet something.com 587
HELO
MAIL FROM: test@example.com
RCPT TO: test@example.com
DATA
From: from@examile.com
Subject: subject
body
.
QUIT
AWS SES での送信例
https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/send-email-smtp-client-command-line.html
POP
command | description |
---|---|
APOP | アクセスしたユーザ宛てのメール有無問い合わせ |
LIST | メールサーバが受信しているメールのリストの問い合わせ |
RETR | 受信したいメールの指定 |
QUIT | 正常なコネクション解法 |
STAT | 状況の問い合わせ |
USER | |
PASS |
Command
-
Connect without encryption
telnet host.com 110
-
Connect with encryption
openssl s_client -connect host.com:995
Example
After the connection, we can use commands as follows.
USER user-account
PASS password
STAT
LIST
RETR 3
Base64 Encoding
perl -MMIME::Base64 -e 'print encode_base64("username");'
perl -MMIME::Base64 -e 'print encode_base64("password");'