eximime: フィルターのMIME対応パッチ

[in English]

注意: これは、exim 4.14用のパッチです。最新の exim (4.202 以降) には、公式にこのパッチが適用されていますので、個別にダウンロードする必要はありません。

What is this?

これは、exim のフィルターを日本語環境で使えるようにするためパッチ、およびexim以外のソフトウェアでも利用できるようにしたライブラリです。

日本語の件名をフィルタリングする際には、MIMEデコードと文字コード変換の2つの処理が必要になり、なかなか電子メールサーバー側で対応するのは大変です。このことに関しては、No more spam! をご参照下さい。

このパッチを適用することで、デコードしたメッセージを扱うことができるようになります。

使い方

ダウンロード

ダウンロードは、ここからご利用下さい。

ChangeLog:

2003-05-07  Norihisa Washitake  
        * Now the decoding happens automatically.

        * Filenames are completely new.

        * No more 'mime_decode' operator now.  Exim calls rfc2047_decode()
        function at the end of find_header() in src/expand.c...

2003-04-30  Norihisa Washitake  
	* Removed store_release() function from the source.  Because exim
	process does not live very long, we could forget about the memory,
	as long as we get it via store_get().

	* More flexible coding, so that eximime.c itself could be used
	independently.  We do not need exim.h any longer (when be compiled
	alone).

2003-04-26  Norihisa Washitake  
	* The first release.

インストール

これはソースファイルに対するパッチです。ダウンロードしたら、まず圧縮を解き、オリジナルのソースにパッチを当てる必要があります。

wassy ~% wget http://washitake.com/mail/exim/mime/rfc2047.patch.gz
wassy ~% gunzip rfc2047.patch.gz
wassy ~% cd /usr/src/exim-4.14
wassy exim-4.14% patch -p1 < ~/rfc2047.patch

パッチを当てたら、いつものように(?) src/EDITME を Local/Makefile にコピーして適当に編集し、make して make install します。既に一度 make した環境では、ビルドできないので、ソースツリーをいったん作り直すか、最低限 build-OS-architect というディレクトリを削除する必要があります。

wassy exim-4.14% rm -rf build-Linux-i386/
wassy exim-4.14% make && sudo make install

使い方

フィルターやconfigurationファイルなどで、

if $header_Subject: contains "未承諾広告" then
   save /dev/null
endif

などと使うことができます。ファイルの文字コードは EUC-JP にしてください。

また、文字コード変換ライブラリ iconv と一緒に利用することもできます。この場合、パッチを当てた後で、Local/Makefile 中、最後の ICONV で始まる行のコメントを外し、make し直してください。フィルターに UTF-8 などを使うことができるようになります。

元)
# HAVE_ICONV=yes
# FILTER_ENCODE=\"UTF-8\"

後)
HAVE_ICONV=yes
FILTER_ENCODE=\"UTF-8\"

また、一般的な expand-string のオペレーターとして定義されているので、フィルターに限らず利用できます。たとえば、Routers Configurations のセクションに書くことで、spam をすべてブラックホールに捨てることもできます。

ライブラリ

exim以外のソフトウェアで、この RFC2047 デコードライブラリを使いたいという場合は、一応独立したライブラリとして用意していますので、こちらもご利用下さい。もしバグなど見つけた場合は、ぜひご連絡いただければ、と思います。