BBRK 20-12-28
メールを送信する側のメーラーが Gmail や Outlook の場合、Subject に付いているタグを fml が認識できず、複数のタグが付与されてしまう現象が鬱陶しくなってきたので対策してみました。
こちらのサイト の「2014年06月29日 本日のお題:fml4のSubject処理改造」を参考にしました。
内輪MLで使用している fml のバージョンは 3.0 でしたが、対応部分のソースコードは一字一句、完全に一緒だったのと、内容からして問題なさそうでしたので、そのまま取り込んでみました。
これでしばらく様子を見てみます。
修正前
# Subject: # 1. remove [Elena:id] # 2. while ( Re: Re: -> Re: ) (THIS IS REQUIED ANY TIME, ISN'T IT? but...) # Default: not remove multiple Re:'s), # which actions may be out of my business if ($_ = $e{'h:Subject:'}) { if ($STRIP_BRACKETS || $SUBJECT_FREE_FORM_REGEXP || $SUBJECT_HML_FORM) { if ($e{'MIME'}) { # against cc:mail ;_; &use('MIME'); &StripMIMESubject(*e); } else { # e.g. Subject: [Elena:003] E.. U so ...; print STDERR "IN: $_\n" if $debug; $e{'h:Subject:'} = &StripBracket($_); print STDERR "OUT: $e{'h:Subject:'}\n" if $debug; } } # Even if pass through, always strip of Re:* else { $e{'h:Subject:'} = &CutOffRe($_); } } |
修正後
# Subject: # 1. remove [Elena:id] # 2. while ( Re: Re: -> Re: ) (THIS IS REQUIED ANY TIME, ISN'T IT? but...) # Default: not remove multiple Re:'s), # which actions may be out of my business if ($_ = $e{'h:Subject:'}) { if ($STRIP_BRACKETS || $SUBJECT_FREE_FORM_REGEXP || $SUBJECT_HML_FORM) { if ($e{'MIME'}) { # against cc:mail ;_; &use('MIME'); &StripMIMESubject(*e); } else { # e.g. Subject: [Elena:003] E.. U so ...; print STDERR "IN: $_\n" if $debug; use Encode qw(decode); use Jcode; my $code, $tmpsubject; $tmpsubject = decode('MIME-header',$_); $code = getcode($tmpsubject); if ($code eq "ascii") { $e{'h:Subject:'} = &StripBracket($_); } else { $e{'h:Subject:'} = jcode(&StripBracket($tmpsubject))->mime_encode; } print STDERR "OUT: $e{'h:Subject:'}\n" if $debug; } } # Even if pass through, always strip of Re:* else { $e{'h:Subject:'} = &CutOffRe($_); } } |
■関連記事
・BBRK 07-04-07 : fml インストール
・BBRK 14-12-29 : fml の makefml がエラー