7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Gmailの迷惑メールフィルタに引っかかる、Charlie Rootのメールを救済するスクリプト

Last updated at Posted at 2014-06-19

RubyのIMAPライブラリを使用して、Gmailで迷惑メールに分類されたrootあてメールを救済するやっつけスクリプトを書いてみました。

動機

スマートフォンでFreeBSDのレポートメール(Charlie Rootからのメール)を読みたいので、aliasesでGmailあてに設定し運用しています。
...が、迷惑メールに分類されてしまい、その度に「迷惑メールではないことを報告」を実行するのは非常にめんどくさい。

なんとかしたい。

やったこと

IMAP4のクライアントで迷惑メールフォルダに分類されてしまったレポートメールをINBOXに移動するスクリプトをrubyで書き、cronで一日一回実行するように設定してみた。

imap4.rb
# !/usr/local/bin/ruby
# -*- encoding: utf-8 -*-

require 'net/imap'

host     = 'imap.gmail.com'
user     = 'gmailのメールアドレス'
password = 'gmailのパスワード'

OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

imap = Net::IMAP.new(host, 993, true)
imap.login(user, password)

# 迷惑メールフォルダを選択
mailbox = Net::IMAP.encode_utf7('[Gmail]/迷惑メール')
imap.select(mailbox)

rule = ['TO', 'root@', 'UNSEEN']

message_ids = []
imap.search(rule).each do |message_id|
        message_ids << message_id
end
imap.copy(message_ids, "INBOX")

imap.disconnect

やっていることは単純で、

  1. GmailにIMAP4で接続
  2. 迷惑メールフォルダを選択
  3. 宛先が'root@'で未読なメールを検索しメッセージIDのリスト作成
  4. リストアップしたメールをINBOXフォルダへコピー

だけです。

GmailではINBOXへコピーした段階で迷惑メールフォルダから削除されるようです。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?