【しばらく編集不可モードで運営します】 編集(管理者用) | 差分 | 新規作成 | 一覧 | RSS | FrontPage | 検索 | 更新履歴

ezmlmのprefixを整形しよう - *<B style="color:black;background-color:#ffff66">ezmlm</B>のprefixを整形しよう

目次

<B style="color:black;background-color:#ffff66">ezmlm</B>のprefixを整形しよう

目的

下のタイトルでメールを出すと、

MLがわではこのようなタイトルで帰ってくる。

  -------------------------------------------

では、このメールに返信があった場合はどうなるだろう?

こうなっているものを送るから、

  -------------------------------------------

これをなんとかして

とするのが目的。

プログラミングの概念

正規表現の置換を使用。

この場合、上のようにメールが送られるから、

と分けられる。これで、分けた3番目の部分のみ削除すればいいと言う事になる

スタートアップ

<B style="color:black;background-color:#ffff66">ezmlm</B>のprefixを編集。

  | perl -ne 's/^<B style="color:black;background-color:#A0FFFF">Subject</B>: *(R[Ee]\[?[0-9]*\]?:)? *\[[^:+]:[0-9][0-9]*\] *(R[Ee]\[?[0-9]*\]?:)? *(.*)/<B style="color:black;background-color:#A0FFFF">Subject</B>: $1$3/;print $_;' |/usr/local/bin/<B style="color:black;background-color:#ffff66">ezmlm</B>/<B style="color:black;background-color:#ffff66">ezmlm</B>-send '/export/home/vpopmail/domains/domain/mlname' 

Re[2]:

などにも対応。shの正規表現を使うよりもなれてるperlの正規表現を使うことにした。

バグ発見

返信時のprefixが変わらない、という不具合が。 MS Outlook(Express)のバグだった。

本当であれば日本語のみエンコードされて送られるはずが、 本来エンコードされない半角英数字+半角記号(下の例で言えば[prefix:1234])も含めて エンコードされてしまうためのようです。

・エンコード前

  [prefix:1234]タイトル 

・エンコード後(本来ならこうなる)

  <B style="color:black;background-color:#A0FFFF">Subject</B>: [prefix:1234] =?iso-2022-jp?B?GyRCN29MPiRLRnxLXDhsJCw0XiReJGwkRiQkJGs+bDlnGyhC?= 

・エンコード後:OutlookExpress?の場合

  <B style="color:black;background-color:#A0FFFF">Subject</B>: =?iso-2022-jp?B?UmU6IFtwdi1wcmU6Nl0gGyRCN29MPiRLRnxLXDhsJCw0XhsoQg==?= 

*お約束

1;