2026-09-06 實跑量測.測試帳號=我們自己的 Gmail 帳號.工具=gog v0.35.0.標的=一封 2021 年的舊行銷信,測完狀態已復原
| 連接器工具 | 結果 | gog 怎麼做的 |
|---|---|---|
| search_threads | ✓ 實跑 | gog gmail search "<query>" 吃 Gmail 原生查詢語法 |
| get_message | ✓ 實跑 | gog gmail get <id> 另有 raw 出完整 JSON |
| get_thread | ✓ 實跑 | gog gmail thread get <id> |
| list_labels | ✓ 實跑 | gog gmail labels list 該帳號 45 個 |
| create_label | ✓ 實跑 | gog gmail labels create <name> 回 Label_54 |
| update_label | ✓ 實跑 | labels rename 改名、labels style 改顏色與可見度 |
| delete_label | ✓ 實跑 | gog gmail labels delete |
| label_message | ✓ 實跑 | messages modify <id> --add 讀回值親眼看到 Label_54 出現 |
| unlabel_message | ✓ 實跑 | messages modify --remove 讀回值看到它消失 |
| label_thread | ✓ 實跑 | thread modify --add |
| unlabel_thread | ✓ 實跑 | thread modify --remove |
| mark_message_spam | ✓ 實跑 | messages modify --add SPAM |
| unmark_message_spam | ✓ 實跑 | messages modify --remove SPAM |
| mark_thread_spam | ✓ 實跑 | thread modify --add SPAM |
| unmark_thread_spam | ✓ 實跑 | thread modify --remove SPAM |
| trash_message | ✓ 實跑 | gog gmail trash <id> |
| untrash_message | ✓ 實跑 | messages modify --remove TRASH |
| trash_thread | ✓ 實跑 | thread modify --add TRASH |
| untrash_thread | ✓ 實跑 | thread modify --remove TRASH |
| create_draft | ✓ 實跑 | gog gmail drafts create 回 draftId |
| update_draft | ✓ 實跑 | drafts update 改完讀回主旨確認是新的 |
| list_drafts | ✓ 實跑 | gog gmail drafts list |
| list_filters | ✓ 實跑 | gog gmail settings filters list |
| create_filter | ✓ 乾跑 | settings filters create 只跑 -n,沒真的在帳號上留下規則 |
| send_message | ✓ 乾跑 | gog gmail send 寄信是不可逆動作,沒你點頭不真寄 |
| reply | ✓ 乾跑 | gog gmail reply 另有 reply-all |
| forward | ✓ 乾跑 | gog gmail forward --to |
| apply_sensitive_message_label | ✗ 無 | gog 沒有對應指令。這不是 Gmail API 的標準動作,查不到 Google 的公開說明,研判是連接器自己的分級機制(標記「敏感」後由它自己決定要不要遮蔽) |
| apply_sensitive_thread_label | ✗ 無 | 同上,執行緒版本 |
label_ids 從 UNREAD,CATEGORY_UPDATES 開始、結束時仍是 UNREAD,CATEGORY_UPDATES;測試用標籤已刪除,四張探針草稿逐一比對主旨後刪除(沒有動到既有的六張草稿)。來源=gog auth list -j,測試帳號 2026-08-13 授權,本輪當場讀出,不是照文件抄
| OAuth scope | 換成白話 | 本輪驗到什麼 |
|---|---|---|
gmail.modify | 讀信、寄信、改標籤、草稿、丟垃圾桶與救回 | 上表 27 格全靠它 |
gmail.settings.basic | 篩選器、休假回覆、代寄地址、自動轉寄 | filters list 回 5 行、vacation get 回 enable_auto_reply false、autoforward get 回 enabled false、sendas list 有表頭 |
gmail.settings.sharing | 委派、代寄他人地址 | delegates list 回 403 Access restricted to service account——這是 Workspace 專屬功能,個人 Gmail 帳號本來就沒有,不是權限少給 |
https://mail.google.com/ | 沒有。永久刪除信件要它 | gog gmail batch delete 因此做不到真刪,只能丟垃圾桶。這是刻意的:少一格權限,就少一種一鍵毀掉信箱的可能 |
gmail attachment 從一封 2026-09-05 的通知信抓下 132,781 bytes 的 PDF,測完即刪export 成 Gmail 網頁版吃得下的 XMLgmail autoreply <query> 對符合條件的信各回一次且只回一次gmail import 把 EML 檔塞回信箱archive、mark-read、unread、batch modify 一次改多封gmail url 回可以直接點開的 Gmail 網址gmail history(增量同步)要一個有效的 historyId 當起點,本輪拿 --since 1 去打回 404,那是我給錯參數不是功能壞掉——但沒驗過就是沒驗過,不列進通過數。2026-09-06 20:2x 追加實測,起因是有人問「Apps Script 我們也可以做?」
gog 有這一組指令:appscript get(看專案)、content(讀出程式碼)、create(開新專案)、run(呼叫專案裡的函式)。gog auth services 也把 appscript 列為可授權服務,對應 script.projects 範圍。
但現在叫不動。真打一次 API 的回應是:
原因是五個帳號沒有一個授權過 script.projects(gog auth list -j 全庫搜這個字串命中 0 次)。那次授權拿的是 calendar/contacts/docs/drive/gmail/sheets/slides/tasks 八項,Apps Script 不在裡面。
要開通得做兩件事:Cloud 專案裡啟用 Apps Script API;再跑一輪 gog auth add <email> --services appscript 讓本人點一次同意。因為一輪最多約 8 個 scope,這會是獨立的第二輪,不能塞進原本那一輪。
check.py 25 頁全過。gmail attachment 可以把附件抓下來接後續處理--gmail-no-send 關掉寄信、--readonly 全域唯讀、--wrap-untrusted 把讀進來的信件內容包成不可信標記防注入