2006年5月21日

[SpamAssassin-JP 238] Re:auto-whitelist のアドレス部分にゴミがある

** SpamAssassin メーリングリスト **
** 注意:このメールへの返信は SpamAssassin-jp へ行きます **
舘山です

エンベロープFromで全て取れていれば問題ないんですね...
(138行で エンベロープFrom の処理して、見つからない場合の処理が今回のケー
ス)

メール本文のFrom: はいろいろな書き方あるので
From: (名前) アドレス
From: アドレス (名前)
From: "名前" アドレス

なんて場合にはやはりそのまま格納しちゃうようですね
また
From: アドレス
の場合は抽出できないみたい...

難しそうですね

Motoharu Kuboさんの
題名「[SpamAssassin-JP 237] Re: auto-whitelist のアドレス部分にゴミがある」のメールからの引用です
> ** SpamAssassin メーリングリスト **
> ** 注意:このメールへの返信は SpamAssassin-jp へ行きます **
> 久保です。
>
> > ここに来たときは、From: がすでにMIMEデコードされてるようです。
> > 名前部分に「若」や「ー」が入っていると、
> > MIMEデコードすると「<」が現れます。
>
> ああ、そうかもしれないですね。
>
> 元の正規表現だと、はじめて出現した「<」の次の文字からはじめて出現した
> 「>」の直前の文字までをメールアドレスとみなす、ということになりますか
> ら、デコードした文字列中に「<」があったらおかしくなります。
>
> > From: を解析して、名前とアドレスに分離してから
> > デコードしなくちゃいけないんではないかしらん。
>
> デコードが先かな、と思います。
>
> 以前実験的にMIMEエンコードをいろいろいじっていたときに、"<メールアドレ
> ス>"まで含めてFrom:行の中身全体がBエンコーディングされてしまったような記
> 憶があります。
>
> > とすると、とりあえず何通か試してみた限りはうまくいっています。
>
> 少しは改善したみたいですね。
>
> > これ、「アドレスは末尾にあると限定」して良いんでしたっけ?
> > From: <アドレス> 名前
> > ってダメなんでしたっけ?
>
> すみません、そこまで配慮してませんでした。
>
> if (/From:\s.*<([^<>+])>/ {
>
> だとどうでしょう。メールアドレス自体に「<」と「>」が含まれることはない、
> という前提です。スペースが含まれることもないでしょうから、スペース文字を
> 加えてもいいかも。
>
> メールアドレスを完全に表現した正規表現というのを以前どこかで見たことがあ
> ります。すごく長いんですが、これをあてはめたらもっといいのかもしれませ
> ん。でもスパム送信者が名乗るFrom:メールアドレスがRFCに正しく準拠している
> という保証はないかもしれないので、これでも完全な解決にならないかもしれない。
さらに騙りメールという問題があって困ったものです

>
> # メールアドレスのユーザ名部分に「'」が含まれているというケースに遭遇し
> # たことがあります。このときは、メールから拾ったアドレス部分をMySQLに格
> # 納するSQLが構文エラーになってしまう、という問題でした:-)
言うまでも無いところですがクオートが推奨されてますね
(perl DBI では $dbh->quote($string))
=>つい端折ってしまって後で気が付くケースですが....

--
彡彡从 たてやんっす
d□/□-b
ヽ"ー"丿

Key fingerprint = 5D56 8EA3 B9FE A721 4866 FB4A 0041 672C 08DD C33A

--
SpamAssassin メーリングリスト
http://mm.apache.jp/mailman/listinfo/spamassassin-jp

投稿者 xml-rpc : 2006年5月21日 22:22
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/39982
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。