0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

メール関連コマンド

Last updated at Posted at 2026-01-12

接続コマンド:
【Mail】「TLS」「STARTTLS」接続コマンド

📤 SMTP(送信)

◆ 事前準備(AUTH用 Base64 文字列作成)


■Linux で Base64 に変換する

メールアカウント

echo -en "from@example.com" | base64

パスワード

echo -en "password" | base64

■Windows(PowerShell)で Base64 に変換する

メールアカウント

$bytes = [System.Text.Encoding]::ASCII.GetBytes("from@example.com") ; [Convert]::ToBase64String($bytes)

パスワード

$bytes = [System.Text.Encoding]::ASCII.GetBytes("password") ; [Convert]::ToBase64String($bytes)

◆ SMTP セッション

自分を名乗り、サーバがサポートする機能(AUTH / STARTTLS など)を取得する

EHLO example.com

例:

EHLO smtp.ethereal.email # クライアントが自分のホスト名を名乗り、拡張機能を要求
250-smtp.ethereal.email Nice to meet you, KD106136147050.ppp-bb.dion.ne.jp # サーバのホスト名と挨拶メッセージ
250-PIPELINING # 複数SMTPコマンドを連続送信できる拡張
250-8BITMIME # 8bit文字をメール本文で使用可能
250-SMTPUTF8 # UTF-8文字(日本語アドレス等)をサポート
250 AUTH LOGIN PLAIN # SMTP AUTHに LOGIN と PLAIN の2方式が使える

SMTP 認証を開始する(この後に Base64 化したユーザー名・パスワードを送信)

AUTH LOGIN
334 VXNlcm5hbWU6   #「Username:」をbase64で表示している
${base64のメールアカウント}
334 UGFzc3dvcmQ6   #「Password:」をbase64で表示している
${base64のパスワード}
235 Authentication successful

差出人アドレスを指定する(エンベロープ From / SMTP From)

MAIL FROM:<from@example.com>

宛先アドレスを指定する(複数回指定可能)

RCPT TO:<to@example.com>

メール本文の入力を開始する

DATA

メールヘッダと本文を送信し、. 単独行で本文終了

DATA 以降のメールヘッダは見かけ上の表示(メールクライアントに表示される)。
空行はヘッダと本文の区切り。

Subject: test
From: from@example.com  # ヘッダfrom
To: to@example.com

Hello
.

SMTP セッションを終了する

QUIT

◆ SMTPセッション時の推奨の入力内容

送信に使うSMTPサーバが定めた「送信者ポリシー」がある。
入力内容がそれに違反する場合は、送信できない。
下記の入力内容であれば、ポリシー違反に該当する可能性が低い。

項目 役割 SMTP AUTHアカウントと一致させる? 他項目との関係 / 理由
SMTP AUTH 送信者の身分証 SMTPサーバにログインする主体
MAIL FROM エンベロープFrom(配送責任者・バウンス先) ほぼ必須 AUTHユーザーと不一致だと送信者制限で拒否されやすい
From(ヘッダ) 表示上の差出人 強く推奨 DMARCでは From と SPF/DKIM の整合性を見る
RCPT TO 実際の配送先(1通につき複数可) 不要 To / Cc / Bcc に含まれる全宛先が必要
To(ヘッダ) 表示用宛先(主) 不要 RCPT TO に存在しないと 表示されるが届かない
Cc(ヘッダ) 表示用宛先(写し) 不要 RCPT TO に存在しないと 表示されるが届かない
Bcc(概念) 非表示の配送先 不要 RCPT TO のみ存在し、ヘッダには書かない

📥 POP3(受信・取得)

ユーザー名を送信する

USER username

パスワードを送信し、認証を行う

PASS password

メール件数と総サイズを確認する

STAT

メール一覧を表示する(番号とサイズ)

LIST

指定した番号のメール全文を取得する

RETR 1

指定した番号のメールを削除予約する(即削除ではない)

DELE 1

セッションを終了し、削除を確定する

QUIT

📂 IMAP(受信・管理)

すべてのコマンドにタグ(例:a)を付ける必要がある


ユーザー名とパスワードでログインする

a LOGIN username password

利用可能なフォルダ一覧を取得する

a LIST "" "*"

操作対象として INBOX を選択する

a SELECT INBOX

指定した番号のメール本文を取得する

a FETCH 1 BODY[TEXT]
指定 意味
BODY[] メール全体
BODY[HEADER] ヘッダ全体
BODY[TEXT] 本文テキスト
BODY[HEADER.FIELDS (...)] 指定ヘッダのみ。以下、例。
a FETCH 1 BODY[HEADER.FIELDS (FROM TO SUBJECT DATE)]
a FETCH 1 BODY[HEADER.FIELDS (DKIM-Signature)]
BODY[n] n番目のMIMEパート
BODY[n.TEXT] n番目の本文
BODY[n.MIME] n番目のMIMEヘッダ
BODY[n]<x.y> MIMEパート n の「x バイト目から y バイト分だけ」取得
MIMEパート
メール全体
├─ パート1: text/plain(本文)
├─ パート2: text/html(HTML本文)
├─ パート3: image/jpeg(画像)
└─ パート4: application/pdf(添付)

メールに削除フラグ(\Deleted)を付与する

a STORE 1 +FLAGS (\Deleted)

削除フラグを外す

a STORE 1 -FLAGS (\Deleted)

削除フラグ付きメールを物理削除する

a EXPUNGE

IMAP セッションを終了する

a LOGOUT

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?