投稿

ラベル(IMAP)が付いた投稿を表示しています

simフリー版ドコモメールの着信をIMAP4 IDLE→IFTTT→PushBullet でプッシュ通知

ドコモ回線で SIMフリー端末(Android)へ変更すると、ドコモメール(spモードメール)の着信が特殊SMSで通知されなくなる simフリー端末用の公式ドコモメールアプリは、15分間隔でのポーリング受信 連絡は他のツールに移りつつあるため、あまり支障はないが、実験的メモです 注意 キャリア端末での着信通知は SMSで起動するため、Android端末が Doze 状態でも通知されますが、今回の方法は Androidのプッシュを最終的に利用しているため、Dozeの影響を受けます 着信トリガーで、SMSや電話着信を起動すれば、リアルタイム性を保つことは可能かと思います(今回はそこまで突っ込んでません) 試したけどNGだった事 ドコモメール設定(spモード接続)から user-agentを iPhone へ変更して、着信お知らせメール(SMS)をオンにしてみる → 通常SMSが到着した形跡なし ドコモ公式端末から DcmWapPushHelper.apk と jp.nttdocomo.carriermail-2.apk を移植 → jp.nttdocomo.carriermail-2.apk(ドコモメール)は、起動と強制終了を繰り返して利用できず、DcmWapPushHelper.apk + ドコモメール(simフリー用)は、プッシュの反応なし ということで、IMAP4 の IDLEを用いて、メール着信イベントを取得するしかないという事になりました IMAP4 IDLE は早い話、セッションをつないだままにしてボックスに変化があったらサーバからクライアントへメッセージを送る --- という方法なため、端末アプリで IMAP4 IDLE を用いると、常にセッションを張り続ける→電池を消耗する という事は容易に想像されます。 今回は、常時起動したサーバ(今回は手持ちのVPS)で、IMAP4 IDLEを監視して、メール受信イベント →  IFTTT WebHook → PushBullet で端末に「何か来たよ」の通知を行う事としました メール受信イベント以下は、Gmailへ通知を送るなどでも同じです ※ imap.select('inbox') で受信フォルダを選択しています それ以外のフォルダの通知を受ける場合、他のを指定する必要があります 日本語の場合...

pear net_imap connect で "already connected, logout first!" のエラー

$imap = new Net_IMAP(); if( PEAR::isError($ret = $imap->connect('hostname', 993)) ){ echo $ret->getMessage(); // "already connected, logout first!" } のように、connectで既に接続済みのエラーが出る Net_IMAP のコンストラクタは Net_IMAP('localhost' ... ) のデフォルト値を持っているので 実行サーバが IMAPを兼用している環境(レンタルサーバなど)では、コンストラクタの時点で、localhostへ接続してしまっている connect を使わず、コンストラクタでホスト指定→接続とする