メール着信を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