2009-11-28(土) 晴のち曇 安静時心拍数 59 [長年日記]
_ Gmailに配信された楽天ショップからのメルマガを配信停止にするスクリプト
1通1通手で処理するのは面倒なのでスクリプトを書いてみました。
require 'rubygems' require 'mechanize' require 'net/imap' imap = Net::IMAP.new('imap.gmail.com', 993, true) imap.login('hoge@gmail.com', 'fuga') imap.select('INBOX') ids = imap.search(["UNSEEN"]) seqnos = [] imap.fetch(ids, "BODY[TEXT]").each {|mail| body = mail.attr["BODY[TEXT]"] if %r|(http://emagazine.rakuten.co.jp/q.*)| =~ body url = $1 agent = WWW::Mechanize.new page = agent.get(url) agent.page.encoding = 'eucJP' agent.page.form_with(:action => '/q') {|form| form.click_button if form } seqnos.push(mail.seqno) end } seqnos.each {|seqno| imap.store(seqno, '+FLAGS', [:Seen]) imap.store(seqno, '+FLAGS', [:Deleted]) } imap.expunge imap.disconnect
最初、迷惑メールとして処理してしまっても良いかと思ったのですが、誤学習されると後で不自由になるので。