YouTube_Gmailを何度も見てしまう人へ|受信トレイが0件なら開かない仕組み

YouTubeで紹介したGmailを必要なときだけ開く仕組みです。
※Windows限定の方法です。

仕組みの作り方

①AutoHotkeyをインストールする

以下の記事をご参照ください。

② Google Apps Scriptで確認用URLを作成する

各Gmailアカウントで、以下のGoogle Apps Scriptを開き、新しいプロジェクトを作成します。
https://script.google.com/create

const ACCESS_KEY = "任意の長い文字列を入力";

function doGet(e) {
  if (!e || e.parameter.key !== ACCESS_KEY) {
    return ContentService.createTextOutput("error");
  }

  const hasMail = GmailApp.getInboxThreads(0, 1).length > 0;

  return ContentService.createTextOutput(hasMail ? "1" : "0");
}

その後、Webアプリとしてデプロイします。

  • 実行するユーザー:自分
  • アクセスできるユーザー:全員

発行されたURLの末尾に、設定したキーを付けます。

https://script.google.com/macros/s/XXXXXXXX/exec?key=任意の長い文字列

複数のGmailアカウントで使う場合は、各アカウントで同じ設定を行います。

③AHKファイルを作成する

メモ帳を開いて、以下のコードを記載します。

checkUrlには、手順②で発行したGoogle Apps ScriptのURLを入力します。
inboxUrlには、開きたいGmailの受信トレイURLを入力してください。

コードの詳細
#Requires AutoHotkey v2.0

; ====================================
; Gmail設定
; ====================================

global gmailAccounts := Map(
    1, Map(
        "name", "個人メール",
        "checkUrl", "Google Apps ScriptのURLを入力",
        "inboxUrl", "https://mail.google.com/mail/u/0/#inbox"
    ),
    2, Map(
        "name", "仕事用メール",
        "checkUrl", "Google Apps ScriptのURLを入力",
        "inboxUrl", "https://mail.google.com/mail/u/1/#inbox"
    ),
    3, Map(
        "name", "その他のメール",
        "checkUrl", "Google Apps ScriptのURLを入力",
        "inboxUrl", "https://mail.google.com/mail/u/2/#inbox"
    )
)

; 無変換キーを単独で押したときは何もしない
sc07B::Return

; 無変換キー+数字キーで各Gmailを確認
sc07B & 1::OpenGmailIfInboxNotEmpty(1)
sc07B & 2::OpenGmailIfInboxNotEmpty(2)
sc07B & 3::OpenGmailIfInboxNotEmpty(3)


; ====================================
; Gmailの受信トレイを確認する
; ====================================

OpenGmailIfInboxNotEmpty(accountNumber) {
    global gmailAccounts

    if !gmailAccounts.Has(accountNumber) {
        ShowMailStatus("Gmail設定が見つかりません")
        return
    }

    account := gmailAccounts[accountNumber]

    ShowMailStatus(account["name"] ":確認中…")

    try {
        request := ComObject("WinHttp.WinHttpRequest.5.1")

        ; 同期処理でGoogle Apps Scriptへアクセス
        request.Open("GET", account["checkUrl"], false)

        ; タイムアウト設定
        request.SetTimeouts(2000, 2000, 2000, 4000)

        request.Send()

        if (request.Status != 200) {
            ShowMailStatus(
                account["name"] ":確認エラー(HTTP " request.Status ")"
            )
            return
        }

        result := Trim(request.ResponseText)

        switch result {
            case "1":
                ; 受信トレイにメールがあればGmailを開く
                Run account["inboxUrl"]

            case "0":
                ; 0件ならGmailを開かない
                ShowMailStatus(
                    account["name"] ":受信トレイは0件です"
                )

            default:
                ShowMailStatus(
                    account["name"] ":件数を確認できませんでした"
                )
        }

    } catch as err {
        ShowMailStatus(
            account["name"] ":確認処理でエラーが発生しました"
        )
    }
}


; ====================================
; 確認結果を画面に表示する
; ====================================

ShowMailStatus(message) {
    ToolTip message
    SetTimer () => ToolTip(), -1500
}

「すべてのファイル」を選択し、「.ahk」として保存します。

④使い方

保存したファイルをダブルクリックで起動すると、使えるようになります。

ショートカットキーは「無変換キー+1~3」で対応するURLにアクセスできます。

受信トレイが0件の場合は、画面右上にメッセージが表示され、Gmailは開きません。

ぜひ、お試しいただければ。

関連記事