Courier-MTA バージョンアップとCouriermlmの改造

やっとこさ、自宅のメールサーバのCourier-MTAをVer0.47からVer0.51にバージョンアップしました。
Ver0.47から0.51のアップグレードのポイントはAuthDaemonが分離されたことが一番大きなところでしたが、それぞれ別々にコンパイル&リンクする以外にそんなに悩むことなくバージョンアップ完了できました。
AuthlibもMakeにinstall-migrateがあったので設定自体も前の状態を引き継ぐことができたのです。

どっちかつうとVer0.47をMakeした際のことをすっかり忘れれてはまったのがOpenSSLのInclude&Lib関係っす。
ということで、簡単なMakeメモを忘れないウチに書いとくことと、家庭内MLを立ち上げて見たときのMLのカスタマイズをば健忘録にいれときます。

courier-authlib (ver0.57)

configure

$./configure –enable-unicode –with-redhat –with-mailuser=mailuser –with-mailgroup=mailuser

あとはmake/make install(install-migrate)でOKです。

設定

 /usr/local/etc/authlibのauthdaemonrcを書き換えて、必要なAuthdaemonを設定しときます。

我が家ではVer0.47でquicaを利用してMySQLで管理してたのでAuthmysqlのみをmodulelistに書きました。
現在、quicaからphpCourierに0.51バージョンアップと共に鞍替えしましたが、基本的にはAuthmysqlrcの中身の違いだけでAuthdaemonrcの変更は必要ありません。
ちなみにphpcourierに変えたのは管理画面の操作性とアカウントの生成やQouta周りの管理設定がらくそうだったからです。
quicaでも同じことが出来ますが、若干操作性はphpcourierの方が上です。
但し、phpcourierの素のままだとメールボックスのディレクトリの書き込みの方法がQuicaと違ってシンプルな構造なので、入れ替えの際には注意が必要です。
新規の作成するならそのままのインストール手順に従ってください。
乗り換え時はちょっとsudoの利用にPHPを書き換える必要があります。
qmail+vpopmailあたりからマイグレーションするときはquicaで移行してからさらにphpcourierへの移行手順が必要です。
(quicaのままでもよいんですが)

Courier-MTA

すでに構築済みであれば、コンパイル&リンクでインストールしてしまえば終わります(^^;
設定ファイル群は、そのまま上書きされませんので安心してやっちゃってください。
但し、Authlibが分離していなかったVer0.47以下の場合はInitScriptはINSTALLファイルからコピペして新しいものに入れ替えないとダメです。

configure

configureの実行の前に以下の環境設定を行いました。(OPENSSL周りでエラーになる場合は下記を参考に)

$export CPPFLAGS=”-I/usr/local/ssl/include -DOPENSSL_NO_KRB5″
$export LDFLAGS=-L/usr/local/ssl/lib

CPPFLAGSのOPENSSL_NO_KRB5は環境に応じて付けてください。
設定後、以下のような感じでconfigureを行い、make/make installして終了です。

 

$ ./configure –enable-unicode –with-redhat –with-mailuser=mailuser –with-mailgroup=mailuser –without-ipv6 –enable-imageurl=/sqwebmail –enable-mimecharset=iso-2022-jp –without-ispell

ちなみにmailuser/mailgroupも環境に合わせて変更してください。
(これはquicaの名残で・・・)

なお、新規にCourier-MTAを構築する場合の健忘録の参考サイトは、ELEMENTZ::SOFTWAREさんがオススメです。
設定ファイル関係の説明はココの記事がかなり参考になります。(なので、あえて書きません(^^;)

Couriermlmを改造する

始めに書いたとおりに試しに家族内MLを立ち上げるべくcouriermlmに初トライしてみました。

なんとか、立ち上がったところMLによくあるシーケンス番号を題名に入れ込む仕組みをcourier-mta.jpのフォーラムで知ったんですが、なぜかPerlのModule(IM)がうまく入らず(ActivePerlだから?)半分あきらめかけていたところだったですが・・・。

題名に入れられてないだけで実はcouriermlmがシーケンス番号を既に持っていて管理しているというフォーラムの発言からそれじゃソース改造しちゃえ! とちょっくらやってみたした。

それが、以下のパッチです。(Ver0.51)

単純にKEYWORDを題名に付加する所にSEQNOのファイルの中身からシーケンス番号を取り出してくっ付けるだけという非常に単純な修正でできました(^^;;

ということで、Courier-MTAをお使いの方でMLでシーケンス番号付けたい という方はこちらをお試しください。(4桁のゼロサプレスにしていますが、sprintfの%04ldの4を変更すればほかの桁数になります)

今のところこれで問題は出ていませんが、本格的なMLで使っていないので何かあれば教えてくださいませ。

ダウンロード&設定方法

  1. ダウンロードページからcmlm-patch.zipをダウンロード、ファイルを解凍します。
  2. するとcourier/cmlm.Cの差分ファイルになっていますので、 patchコマンドまたは手動で差分部分を置き換えてください。
  3. その後、makeしてinstallすればOKです。 courierフォルダのmake後にcouriermlmをコピーするだけでもOKです。

ということで、とりあえずCourier-MTAの健忘録その1でした。

プッシュ通知を