E-mail Ext Plugin
Jenkinsでとても便利に使っているプラグインの1つが、E-mail Ext Pluginです。
個人的にはビルドの結果はメールで通知するのではなく、画面そのものを見たり、RSSやTwitterでキャッチするほうが好きなのですが、内部では共通で使えるメッセージの基盤というと、やっぱりメールです。
そうはいうものの、Jenkinsの導入当初、サーバがちょっと特殊な環境にあったため、ジョブの結果のメールを送信するのがとても面倒な状況に陥りました。
当時(Hudson)のメールはUTF-8が基本になっていました。わたしの使う環境では、途中の中継サーバがISO-2022-JPしか受け付けてくれず、メールが弾かれてしまったのです。
中継サーバの設定は返ることは出来なかったので、なんとかメールのエンコーディングを切り替えられないかMLに相談したところ、さぼてんさんがJenkins本体に対して改修を対応して下さいました…(_ _)
しばらくそれで幸せになったのですが、メッセージをもうちょっと拡張したいなということで、E-mail Ext Pluginを導入。
ただし、これはJenkins本体とは完全には連携していないので、別途改修が必要とのことでした。
HTMLメールでの通知なら、私の環境でもメールが弾かれることはないのですが、Jenkinsの出したメールをどこかのサーバが受け取って、aliasで処理して何か次の処理につなげる…ということを考えると、text/plainのJIS、Content-Transfer-Encoding 7bitじゃないとやっぱりやりにくい…。(スタッフもあんまりHTMLメールは好きじゃないということもあるのですが…)
こちらもMLに相談したところ、曽我部さんが対応してくださいました(_ _)
* * *
さて、実際使っているJenkinsのバージョンアップを待って、遅ればせながら、やっと曽我部さんの描いてくださった指示に従って、メールの設定を反映させることができました。
私はCentOSを使っていますので、こんな感じで設定しています。
- Content-Typeに関しては、Jenkins本体のメール設定の部分で指定したものを引き継いでくれます。
- Content-Transfer-Encoding については、Jenkinsの起動時のプロパティに設定となります。
- CentOSのRPMでインストールした場合は、 /etc/sysconfig/jenkins に設定を加えます。(下記の通りにJENKINS_ARGSを指定)
- JENKINS_ARGS=" -Dhudson.plugins.emailext.ExtendedEmailPublisher.Content-Transfer-Encoding=7bit"
- 起動スクリプトの /etc/rc.d/init.d/jenkins で、この設定を拾ってくれます。
実は、HudsonがJenkinsになったので、このオプションはどう指定するのかな…と思ったのですが、JavaのソースもまだパッケージはHudsonになっているようで、パラメータの指定も Dhudson.plugins.emailext … のままのようでした。
いつか切り替わるのかな?
ともかく、いつもながら凄いなあ…と思いつつ、使うだけのユーザになってしまっていて、申し訳ない限りです。
コメント
コメントを投稿