hacks/mail

2010年04月13日

このエントリーをはてなブックマークに追加

悪用注意

メールアプリケーション開発時には重宝する。

$ sudo tcpdump -l -s 8192 -i eth0 -w - port smtp | strings



編集
@hansode at 20:25|PermalinkComments(0)TrackBack(0)

2009年02月18日

このエントリーをはてなブックマークに追加

false positiveとなった原因判明

迷惑メールフォルダに入ってるメールを確認してみると、
恐らくfalse positiveなメールが入っていた。

メールヘッダーを確認してみると、
Received-SPFフィールドに答えがあった。


Received-SPF: softfail (example.com: domain of transitioning noreply@example.jp does not designate 192.0.2.3 as permitted sender) client-ip=192.0.2.3;

念のためexample.comのSPFレコード(TXTレコード)を確認してみると、
やはり送信元MTAのIPアドレスが許可IPアドレスには含まれていない。


悪いのはユーザーではない

今のままだと、例えばこんな事が起きる。

某社から返事来ないな。どうなってんだ?
電話してみるか…

あの、問い合わせしたんですけど、どうなってますか?
え?返信してるって?
あぁ…迷惑メールフォルダに入ってました。
すみません。私の確認不足でした。

サービス提供側が可能な限りメールが届くよう努力していれば防げる。
これを反面教師として、自社では起きなようにしたい。




編集
@hansode at 14:45|PermalinkComments(0)TrackBack(0)

2007年08月11日

このエントリーをはてなブックマークに追加

この言葉の認知率は低いと思う。

身近なエンジニアでpump-and-dumpを知っている人は居なかった。
自分は迷惑メール対策カンファレンスで使われていて知った言葉。

 ▼『pump-and-dump』
 株式市場の偽情報を流し、不当に株価を引き上げるspamメール

pump-and-dump送信数に比例し、株価が上昇すると言う統計がある。
spamメールはお金になる と言う事を立証している要因でもある。

お金になるからspammerは居なくならないんだろうな。
anti-spammerとしてはどうにかしたい。

anti-spammerがspammerになると厄介。
false positiveとなる術を知っているのはanti-spammer。



編集
@hansode at 00:20|PermalinkComments(2)TrackBack(0)

2007年08月10日

このエントリーをはてなブックマークに追加

1a7a5c75.pngメール関連用語をまとめてみた。
これらの用語を知ってる人とメールの話しをすると、話しが早い。
まとめてしまえば、知らない人に『このエントリを読んでくれ』と言える。




■hamとspam
hamとspamは反意語(ham⇔spam)

▼ham
・hamメール
・味付けされていないham
・受け取りたいメール
▼spam
・spamメール
・spiced ham (味付けされたham)
・迷惑メール



■false,truel,positive,negative
falseだけでなくtrueを含めてみた。
通常使うのはfalse positive, false negative。

▼false positive
・本来hamなのに、spamであると判定されたメール
・spamフォルダに入ってるham
▼false negative
・本来spamなのに、hamであると判定されたメール
・inboxフォルダに入ってるspam
▼true positive
・正しくham判定されたメール
・inboxフォルダに入ってるham
▼true negative
・正しくspam判定されたメール
・spamフォルダに入ってるspam



編集
@hansode at 13:25|PermalinkComments(2)TrackBack(0)

2007年07月04日

このエントリーをはてなブックマークに追加

やはりSpamAssassinはあった方がイイ



▼背景
・おじいちゃんサーバでspamdを起動
・おじいちゃんサーバでメールを読み書き(Mew on Emacs)
 ↓
・spamdをspamd-rw(read-write),spamd-ro(read-only)で起動させていた
 ↓
・inboxに入るspamメール数が激減
 ↓
 ↓3ヶ月経過
 ↓
・大量のspamメールを学習させていたら、おじいちゃんサーバの心拍数が常時高い
・spamd-rw,spamd-roを停止
 ↓
 ↓1ヶ月経過
 ↓
・spamメールがinboxに大量に入って来る
・spamメール邪魔過ぎてメール確認にストレスを感じる
 ↓
・スリムなベイズDBを生成
・spamd-roだけ起動
 ↓
・inboxに入るspamメール数が減少
・ストレス軽減



▼結論
・サーバに似合ったベイズDBを構築する事
・inboxに入って来るspamメール数が減ると効率UP、ストレス軽減
・快適な生活環境を体験してしまうと、抜け出せなくなる



編集
@hansode at 10:30|PermalinkComments(0)TrackBack(0)

2007年06月22日

このエントリーをはてなブックマークに追加

SpamAssassinメモ


▼前提条件
・spamdのオプションに--allow-tellを入れておく事
・spamd起動時、ベイズDBファイルが無い事
・ベイズDB更新直前までベイズDBが無い事

▼ベイズDBの変化
・ベイズDBファイルが無い場合、spamdが生成してくれる


これでspamdの初期環境を作りやすくなる



編集
@hansode at 12:45|PermalinkComments(0)TrackBack(0)

2007年06月12日

このエントリーをはてなブックマークに追加

『5.1.7 Bad sender address syntax』

数年SMTPでおしゃべりしてて初遭遇

▼原因

  • MAILコマンドで指定するメールアドレスをカッコつけなかった

▼解決策

  • MAILコマンドで指定するメールアドレスをカッコツケル
  • 例) <foo@bar.com>

▼前提条件

  • MTAはPostfix
  • main.cfで『strict_rfc821_envelopes = yes』とする

▼ログ

 --------------------------------------------------
 $ telnet 192.0.2.25 25
 220 postfix.example.com ESMTP Postfix (Debian/GNU)
 helo mail.example.net
 250 postfix.example.com
 mail from:foo@bar.com   <----------------------- カッコ悪くてNG
 501 5.1.7 Bad sender address syntax
 mail from:<foo@bar.com> <----------------------- カッコツケタのでOK
 250 2.1.0 Ok
 quit
 221 2.0.0 Bye
 Connection closed by foreign host.
 --------------------------------------------------

同じ場面に遭遇したら、カッコつけよう




編集
@hansode at 01:10|PermalinkComments(0)TrackBack(0)

2007年05月25日

このエントリーをはてなブックマークに追加

諸事情により今の検証環境ではベイズDBによる判定しか出来ない。
SpamAssassinだけで判定していて気づいた3ヶ月間を振り返る。


▼前提条件(学習ポリシー)
・spamメールのみ学習させている
・hamメールは学習させてない

▼結果
・ベイズDBをしっかり学習させていれば、false positiveはほぼゼロ
・false negativeは常に発生。新種spamメールが発生するので中々減らせない…

▼日々の平均値
false positive: 0
false negative: 100
total mail: 5000

もっとfalse negativeを減らしたい。


明日からはおじいちゃんサーバから若者サーバへと検証環境を移行する。
これでやっとMTA側のspam対応の検証を行える。



編集
@hansode at 01:00|PermalinkComments(0)TrackBack(0)

2007年05月24日

このエントリーをはてなブックマークに追加

SpamAssassinのベイズDBを成長させるのが日課

ここ2・3日、成長しなくなった。 太り過ぎ?鍛え過ぎ?

-rw-rw---- 1 spamd spamd  2625536 2007-05-24 01:19 auto-bayes_seen
-rw-rw---- 1 spamd spamd 10530816 2007-05-24 01:19 auto-bayes_toks

ドキュメントを確認してみるかな。




編集
@hansode at 12:05|PermalinkComments(0)TrackBack(0)

2007年04月07日

このエントリーをはてなブックマークに追加

uid指定でmoveした時、move先のuidを取得したい。

Mail::IMAPClientにはこう書かれている。


       If move is sucessful, then it returns a true value. Furthermore, if the
       Mail::IMAPClient object is connected to a server that has the UIDPLUS
       capability, then the true value will be the comma-separated list of
       UID's for the newly copied messages. The list will be in the order in
       which the messages were moved. (Since move uses the copy method, the
       messages will be moved in numerical order.)

dovecotだと戻り値が空っぽだった。uidplus未実装だったのだ…。

  • courier-imapはuidplusを実装している。
  • courier-imapにしてみたらmove後のuidを取得出来た。

moveする時、

  • dovecotでは $imap-<move('dest') で上手く行くのに courier-imapだと上手く行かない。invalid mailbox となってしまう。なんとなく試しに$imap-<move('INBOX.dest')としてみたら上手く行った。 Maildir直下のディレクトリは .dest だ。prefixとしてのINBOX.は意味が無い。

一長一短だな…。




編集
@hansode at 23:55|PermalinkComments(0)TrackBack(0)