TT-RSSとメールサーバの連携 その2(PHP製IMAP->RSS変換ツールを試す)


前回、TT-RSSをセットアップしました。

メール着信をTT-RSSに通知する方法を検討していますが、
現在試しに使っているRSSWebMail for Windowsだと、
何とか変換は出来るけど、いくつか都合が悪いところがあったので、
別のものを探していました。
(新規メールのRSSが定期的に出るのはTT-RSS側でフィルタをかければ済むのですが、
一定時間ごとの検索で、反映に時間がかかったり、メールに対するRSSがかけたりもするので・・・)

で、やっと見つけたのが、Mail2RSSというPHPで書かれたソースコードhttps://github.com/vekin03/Mail2RSS

というわけで、PHPで書かれたプログラムでMail->RSS変換に挑戦。

CentOS6.4 on Walbrixでは標準でLAMP環境が構築されているので、
今回もこれをベースに、PHP-IMAPだけを追加インストールして、
httpd再起動だけすれば準備は完了。

yum -y install php-imap

/etc/init.d/httpd restart

後はダウンロードしたPHPソースコードを、配置。

配置先は、
Windowsファイル共有でアクセスするか、
\\<IPアドレス>\html\

SSHで入って、httpdのドキュメントルートにアクセスする。
/var/www/html/

例として、「mail2rss」というフォルダを作って、
mail2rss.phpという名前でダウンロードしたソースコードを保存。

で、環境に合わせて必要な部分を修正

// User-defined constants
// ============= CHANGE BY YOUR OWN INFORMATIONS HERE ! =====
define('TOKEN', 'YOUR_OWN_TOKEN');
define('MAIL_PROTO', 'IMAP'); // You can choose : IMAP, POP3
define('MAIL_USERNAME', 'you@yourmailhost.com');
define('MAIL_PASSWORD', 'PASSWORD');
define('MAIL_SERVER', 'yourmailserver.com');
define('MAIL_PORT', 993);
define('MAIL_SECURITY', 'SSL'); // You can choose : SSL, TLS or leave blank
//define('MAIL_CHECK_CERTIFS', true);
// ==========================================================

ここで、TOKENには、rss取得時のパスワードの代わりになるので、任意の文字を入力。
また、メールサーバに通常のIMAPでアクセスする場合は、以下のように指定します。

define('MAIL_PROTO', 'IMAP');
define('MAIL_PORT', 143);
define('MAIL_SECURITY', '');

修正が終わったら、試しにブラウザでアクセス

http://<IPアドレス>/mail2rss/mail2rss.php?token=<YOUR_TOKEN>

RSS Feed的なXMLデータが表示されればOKです。

あとは、TT-RSSで、フィードを購読すれば、新着メールをRSSでチェックできます。

なんで、こんな面倒なことをしているのかというと、
単にZabbixの監視の結果をメールサーバを経由して、RSSに表示させるためだったり。

Zabbixだけだったら、直接MySQLからトリガーをRSSに変換してもよさそうけど、
トリガ名とかでZabbixのマクロ変換が難しそうなので・・・・
メールサーバを経由する場合、Zabbixだけじゃなくて、異常時にメールをタスシステムにも応用が利きそうかなと。

あと、Zabbixからのメールの場合、本文がBase64エンコードされて表示されるけど、
この辺はソースを直せば何とかなりそうな気もするので、あとで挑戦予定。
ただ、件名だけ見えれば、今回の目的の場合は問題ないかと。

将来的には、Roundcube Webmailをインストールして
連携させたいなぁ・・・・と妄想中。

ZabbixとTT-RSSとの連携は時間があれば後日まとめたいです。

 

Views: 20

カテゴリー: TT-RSS, Zabbix タグ: , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です