Gmailは強力なスパムフィルタによって従来問題視されていたスパムメールを殆ど目にすることがなくなりました。しかしスパムと言えないまでも迷惑なメールというのは存在し、それらを都度アーカイブしたり、スパム判定に登録するのは面倒だったりします。 そこで使ってみたいのがgmail-brittaです。Gmailのスパムフィルタ設定をRubyから生成できるライブラリです。

gmail-brittaの使い方

gmail-brittaのコード例です。DSLなので書き方は覚える必要がありますが、さほど難しくなさそうです。

require 'rubygems'
require 'gmail-britta'

fs = GmailBritta.filterset(:me => ['thisisme@my-private.org']) do
  filter {
    has %w{from:asf@boinkor.net}
    label 'from-the-author-of-gmail-britta'
    never_spam
  }
end
puts fs.generate

そうすると以下のようなXMLが生成されますので、これをGmail上でインポートすればOKです。

< ?xml version='1.0' encoding='utf-8' ?>
<feed xmlns:apps='http://schemas.google.com/apps/2006' xmlns='http://www.w3.org/2005/Atom'>
  <title>Mail Filters</title>
  <id>tag:mail.google.com,2008:filters:</id>
  <updated>2016-05-16T00:23:46Z</updated>
  <author>
    <name>Andreas Fuchs</name>
    <email>asf@boinkor.net</email>
  </author>
  <entry>
    <category term="filter"></category>
    <title>Mail Filter</title>
    <content></content>
    <apps:property name="shouldNeverSpam" value="true"></apps:property>
    <apps:property name="label" value="from-the-author-of-gmail-britta"></apps:property>
    <apps:property name="hasTheWord" value="from:asf@boinkor.net"></apps:property>
  </entry>
</feed>

gmail-brittaを使えば大量の迷惑メールのリストを登録したり、プロジェクトごとのフィルタ設定を全員で共有するというのも簡単になります。個人であれば他の利用者と情報を共有しても面白そうですし、企業であればチームや部署内でフィルタリストを共通化するのも良さそうです。

gmail-brittaはRuby製、MIT Licenseのオープンソース・ソフトウェアです。

antifuchs/gmail-britta: Generate complex gmail filters via a neat little ruby DSL