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
最初、迷惑メールとして処理してしまっても良いかと思ったのですが、誤学習されると後で不自由になるので。
[ツッコミを入れる]