2011-04-11

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 … のままのようでした。

いつか切り替わるのかな?

ともかく、いつもながら凄いなあ…と思いつつ、使うだけのユーザになってしまっていて、申し訳ない限りです。

0 件のコメント:

コメントを投稿