Qiita Conference 2025

Qiita史上最多!豪華12名のゲストが登壇

特別講演ゲスト(敬称略)

ymrl、成瀬允宣、鹿野壮、伊藤淳一、uhyo、徳丸浩、ミノ駆動、みのるん、桜庭洋之、tenntenn、けんちょん、こにふぁー

0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【自動化】Gmail迷惑メールボックスからSPAMメールを自動でゴミ箱に移動/1時間ごとに定期実行

Posted at

※自己責任でお願いします

AmazonとPayPayを騙るSPAMメールの数が半端ない…。1日で100近く。

GmailのSPAM判定精度はかなり高いけど、AmazonとPayPay銀行は利用しているので、万が一正規のものがまざっていると困るので目視チェックに時間をとられる。

Gmailの自動振り分けルールだと細かい設定ができないので、どうしようかと思ってChatGPTに聞いたらGAS(Google Apps Script)でできることを教えてもらった。

コード

以下はAmazonをかたるSPAMメールを迷惑メールボックスから削除するコード。

これを GAS(https://script.google.com)で、新規プロジェクトとして作成してコピペする。
その後、保存 > 実行 > 実行権限を付与して、動作確認。

Image from Gyazo

※実行権限付与には、数STEP必要です。スクショを後述

動作確認(=意図せぬものまで削除されていないか)できたら、以下のコメントを外す。これでゴミ箱移動が有効になる。

// threads[i].moveToTrash();  // ゴミ箱に移動

さらにトリガを使って定期実行(1時間ごとの例を後述)させる。

すっきり!!

function deleteAmazonDKIMErrorEmailsFromSpam() {
    var target = 'in:spam from:amazon*';
    var threads = GmailApp.search(target);  // 迷惑メールフォルダ内のAmazonメールを検索
    Logger.log("target:" + target + " 件数: " + threads.length);
    for (var i = 0; i < threads.length; i++) {
        var messages = threads[i].getMessages();
        for (var j = 0; j < messages.length; j++) {
            var message = messages[j];
            var headers = message.getRawContent();  // メールのヘッダー情報を取得
            
            if ((!headers.includes("dkim") || headers.includes("dkim=fail") || headers.includes("dkim=none")) &&
                !headers.includes("Return-Path: <*@amazon.com>") &&
                !headers.includes("From: .*@amazon.com")) {  
                // DKIMがエラー(fail)または署名なし(none)のメールを判定
                // threads[i].moveToTrash();  // ゴミ箱に移動
                Logger.log("削除: " + message.getSubject());
            }
        }
    }
}

参考情報

ゴミ箱行きの条件の解説

以下の両方が成立した場合にゴミ箱に移動させる。

  • DKIMがパスしていること
  • 送信元ドメインがamazon.comでないこと

AWSイベントの受付メール等はamazon.comではない(例えば以下の場合はawsevents.com)けど、DKIMはパスしてくるので、迷惑メールに振り分けられていても削除されない。

Image from Gyazo

Image from Gyazo

トリガ設定例/1時間おきに定期実行

Image from Gyazo

Image from Gyazo

実行権限付与手順

スクリプトの実行を行った場合、当方の場合は以下のような流れでした。

Image from Gyazo

Image from Gyazo

Image from Gyazo

続行で権限付与完了

Image from Gyazo

Gmailのセキュリティ通知

Image from Gyazo

0
0
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

Qiita Conference 2025 will be held!: 4/23(wed) - 4/25(Fri)

Qiita Conference is the largest tech conference in Qiita!

Keynote Speaker

ymrl、Masanobu Naruse, Takeshi Kano, Junichi Ito, uhyo, Hiroshi Tokumaru, MinoDriven, Minorun, Hiroyuki Sakuraba, tenntenn, drken, konifar

View event details
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?