Thursday 28 February 2013

学生のレポートメールがSPAM判定されるを救う

なんかしつこく、report が受理されないと言ってくる学生がいるので、仕方なく、spam をあさってみました。

Gmail に変わったので、spam が手元にない。しかも、学科と研究室と個人の三つのアカウントが統合されていて、spam は、それぞれ別に落ちるらしい。転送しているのでspamフィルタに引っかからなければ、ちゃんと着くのだが。Subject で検索して見つけるのは簡単でした。

そもそも研究室のアドレスは晒してないので、どうして、そっち側に投げる学生がいるの理解できない。sender から勝手に生成するメーラとかあるのか? あるいは、メアド込にでコピペしているのか。指定したアドレスに送らないレポートは拒否するべきだという気がしてきた。去年も土壇場で見落としに気がついたりしたんだよな。

spam 判定された理由はすぐにわかった。手抜きなレポートで df の出力だけ貼りつけたのを、締め切り間際に大量に送りつけたので、spam 判定されて、それから、何通出そうと spam 判定を強化することにしかなってないと。締め切り前に出したものは、ちゃんと受け取られている。「締め切り間際に出すな」ってのと「spam 判定される」ってのは、ちゃんと言ったので、自業自得っていうか、そんな感じ。

全部提出しないと不可なので、うるさく言ってくるのは仕方がないです。つうか、そんなこと言わないとレポート出さないあほ学生が多いせいで、そんなことになってます。そんなわけで、今年は、ちゃんと全部出しているのだが大半になった。

ちなみに df のお題はこれ。
http://www.ie.u-ryukyu.ac.jp/%7Ekono/lecture/os/ex/problem/111.html

で、見つかったのだが、それを MH に再読み込みする方法がわからない。MH の imap 対応は、まだやってない :-p

で、Mail.app で読み込んで、~/Library/Mail に来たのをなんとかしうようと。しかし、既に読み込んだメールを重複して読み込むのはまずい。なので、

(0) spam 扱いされていたのを inbox に戻す
(1) MH の方を読み込んで Message Id list を作る
(2) Mail.app 側を Subject / Date で filtering する
(3) Message Id の重複がないものを探しだす

で、ただしそうだと確認して、

(4) MH の inbox 形式で出力

Mail.app の emlx は最初に一行にファイルの大きさがあるので、それを取り除く必要がある。そういう Unix command って tail かと思ったら、どうもできないらしい。まぁ、Perl で自分でやれば良いだけ。

で、2時間ぐらいで終わったみたいです。うげげ。

この手の作業は、Perl 以外でやるとか考えられないです。100行ぐらい。使い捨て。

この10年 Perl が進歩してないとか言っている人がいるようですが、単に、その人の眼が節穴なだけでしょう。Perl 6 も進んでるし、Perl 5 もいろいろ変わってる。もちろん、変わってないように使っても良いわけなんだけど。

No comments: