assaulter's diary

主にバイクについて

MailCore2についてメモ(iOS)

iOS用メールクライアントを作るにはコレ使えばいいのかな?というライブラリ。

MailCore/mailcore2 · GitHub

とりあえずGmailに対してIDLEセッション貼って、変更があった場合にだけメッセージ取得的なことはできたのでその手順

手順

  1. MCOIMAPSessionオブジェクトに必要な情報をセットしてインスタンス化(このオブジェクトに対して命令をするので、インスタンス変数あたりでキープしておく)

2.先ほどのMCOIMAPSessionに対してidleOperation命令を実行。対象のメールサーバーに更新があったら、引数で渡したブロックに対してコールバックされる

3.ヘッダー情報のみが欲しい場合はセッションに対してfetchMessagesByUIDOperationWithFolder:の方をコール(rangeをセット出来、配列がかえってくるので、TableViewにセットすればメールの一覧リストが作れる)

4.コンテンツが欲しい場合はセッションに対してfetchMessageByUIDOperationWithFolder:をコール。uid(IMAPプロトコルに準拠したやつ)で特定するので、フェッチした際に自分がどこまでフェッチしたかを覚えておく。

未検証だが、uidに関してはログ吐くと、next uidが取得出来るので、それ使えばfetchする必要ないかも。

IMAP IDLE (RFC2177)

RFC 2177 - IMAP4 IDLE command

29minごとに通信して、死ぬのを回避してね!って書いてある...僕クライアントアプリ作るわけじゃないからポーリングでいい気がしてきた...