2011年9月22日木曜日

gmail の imap で append

Gmail の imap に openssl で繋いで少し遊んでみた。

メールサーバ側でメールを保存・管理できるだけでなく、メールのアップロードもできることを最近知った。試しに openssl で imap.gmail.com に繋いでコマンドを叩くと割とあっさりアップロードできた。

OSX のターミナルを開いて openssl を実行 ( -crlf はエンターキーを押した際に送られる改行コードが CR/LF になるらしい )。色々と出たあとコマンド待ちになる。コマンドの前には ? を入れないといけないようだ。まずは loginコマンドから。? login に続けて gmail の ユーザー名、パスワードを入れてエンター。
> openssl s_client -connect imap.gmail.com:993 -crlf
  _skip_
* OK Gimap ready for requests from ???.???.???.???
? login gmail_username password
上手くログインできると下記のようにメールアドレスと登録名が表示され再びコマンド待ちとなる。そこで append を試してみる。inbox フォルダーにメッセージを追加したい場合は ? append inbox {メッセージのバイト数} と入力。
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE
? OK ????@gmail.com HenoHeno Moheji authenticated (Success)
? append inbox {120}
+ go ahead
Date: Wed, 21 Sep 2011 20:00:00 +0900 (JST)
From: abcdef@ghijk.lmn
Subject: foo
To: abcdef@ghijk.lmn

Foo!

bye


? OK [APPENDUID ????????? 6694] (Success)
上記では 120 バイトのメッセージが受け付けられた。最低限 Date: , From: , Subject: , To: がないと受け付けてくれなかった。

実際 inbox を覗いてみる。まずは select コマンド で inbox フォルタを選び、最新メッセージの UID を調べる。(下記では 6694)。そのメッセージをfetch all すると append したものがでてきた。


? select inbox
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen NotJunk $Junk $Forwarded NonJunk JunkRecorded $NotJunk)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen NotJunk $Junk $Forwarded NonJunk JunkRecorded $NotJunk \*)] Flags permitted.
? fetch 1:* uid
* 1 FETCH (UID 6238)
* 2 FETCH (UID 6293)
* 3 FETCH (UID 6294)
  _skip_
* 156 FETCH (UID 6674)
* 157 FETCH (UID 6683)
* 158 FETCH (UID 6693)
* 159 FETCH (UID 6694)
? OK Success
? uid fetch 6694 all
* 159 FETCH (UID 6694 ENVELOPE ("Wed, 21 Sep 2011 20:00:00 +0900 (JST)" "foo" ((NIL NIL "abcdef" "ghijk.lmn")) ((NIL NIL "abcdef" "ghijk.lmn")) ((NIL NIL "abcdef" "ghijk.lmn")) ((NIL NIL "abcdef" "ghijk.lmn")) NIL NIL NIL "<8263606161623309890@unknownmsgid>") FLAGS (NotJunk $NotJunk) INTERNALDATE "21-Sep-2011 17:10:19 +0000" RFC822.SIZE 120)
? OK Success

参考:Gmail に IMAP で Mac のターミナルからアクセスする

0 件のコメント:

コメントを投稿