IMAPをコマンドラインから操作する

日付 2016.02.03
タイトル IMAPをコマンドラインから操作する
本文
IMAPの操作の流れはおおよそ、ログイン ⇒ メールボックス選択 ⇒ メールに操作 が基本となります

メールの削除をするときには、最初に削除フラグを立ててから物理削除を行います。




# 接続
telnet [hostname] 143

# SSLで接続
openssl s_client -connect [hostname]:993 -crlf

# ログイン
? login [ID] [パスワード]

# ログアウト
? logout

# メールボックス操作 -------------------------------
# 一覧表示
? list "" "*"

# 選択
# ※ 通常INBOXは常にある
? select "メールボックス名"

# 作成
# ※ メールボックスを選択していても、していなくても、メールボックス名はフルパスで書くこと。例 INBOX.hoge.fuga
# ※ 作成後に購読(subscribe)を行わないとメーラから見えない。
# ※ 日本語名をつける場合、Modified UTF-7でエンコードする。
? create "メールボックス名"

# 購読
? subscribe "メールボックス名"

# 購読停止
? unsubscribe "メールボックス名"

# 状態確認
? status "メールボックス名" (RECENT UNSEEN MESSAGES)

# 消去
? delete "メールボックス名"

# メールボックス選択終了
? close

# メール操作 ---------------------------------------
# 一覧
# 検索条件allを条件指定に変更すると、絞り込みが可能。例 ? search (Seen)
? search all

# 一覧の別な方法
# ※ 1:* はメール範囲。1:10とすればメール番号1から10が取得される。searchで表示される番号と同一。
? fetch 1:* status

# メール詳細
# ※ 
? fetch [メール範囲] rfc822

# フラグ状態確認
? fetch [メール範囲] flags

# フラグ追加
# ※ 指定したフラグが追加されます。
# ※ フラグは 新着:\Recent 既読:\Seen 削除:\Deleted 下書き:\Draft 特別なメッセージ(意味はクライアント依存):\Flaged
? store [メール範囲] +FLAGS([フラグをスペース区切りで列挙])

# フラグ削除
# ※ 指定したフラグが削除されます。
? store [メール範囲] -FLAGS([フラグの列挙])

# フラグ設定
# ※ 以前のフラグの状態に関係なく、指定したフラグが設定されいます。
? store [メール範囲] FLAGS([フラグの列挙])

# コピー
? copy [メール範囲] "メールボックス名"

# 物理削除(削除フラグをつけられたメールの物理削除)
? expunge

# 参考資料
IMAP4(Internet Mail Access Protocol version 4)~後編
 コマンド一覧
 IMAP4のSEARCH条件の一覧
 IMAP4のFETCHオプションの一覧