在 Gmail 裡面展開 GitHub 信件連結的 Userscript

從以前用 Subversion 就有習慣用 e-mail 收 diff log (內建的 hook 就有這個功能)。後來有了 Gmail 就更方便了,畢竟搜尋是 Google 的強項,另外一方面 Gmail 也是目前少數可以完全用鍵盤操作的 e-mail client。

現在用 GitGitHub 平台讓這件事情麻煩不少,得透過 webhook + API 自己包出來,目前折衷的方法是收 GitHub 的通知信 (但是沒有 diff log),然後寫個 Userscript,在按下 i 之後會把 GitHub 通知信裡的連結全部點開:「open-github-links-in-gmail」。

寫的很簡單... 最花時間反而是因為 hotkey 都被吃掉了,要測出哪個鍵還沒被用掉。

Gmail 宣佈支援 MTA-STS

Gmail 宣佈支援 MTA-STS:「Gmail making email more secure with MTA-STS standard」。這邊提到的 MTA-STS 是透過某些設定,讓 SMTP 送信時強制使用 TLS 的機制,可以參考「SMTP 的強加密連線機制」這篇。

可以看到有 TXT,也有 .well-known 檔案:

;; ANSWER SECTION:
_mta-sts.gmail.com.     300     IN      TXT     "v=STSv1; id=20171114T070707;"

$ curl https://mta-sts.gmail.com/.well-known/mta-sts.txt
version: STSv1
mode: testing
mx: gmail-smtp-in.l.google.com
mx: *.gmail-smtp-in.l.google.com
max_age: 86400

如果要自己設定的話可以參考 Google 提供的「About MTA-STS and TLS Reporting」這篇,不過目前中文版文件還沒有更新,請切到英文版...

另外一套將新版 Gmail 介面改回舊版的 CSS

先前是用「Gmail Old 2018 Nov」撐著,後來在「shellscape/gmail-classic」這邊看到另外一組 css,看起來這組好一些... 拿作者的圖片:

圓框與各種浮誇的 hover 效果都儘量關掉,用起來會好一些。

SMTP 的強加密連線機制

RFC 8461 成為正式標準 (Standards Track),描述 Mail server 到 mail server 之間的強加密連線機制:「SMTP MTA Strict Transport Security (MTA-STS)」。

Policy 設定的方法有好幾種:

第一種是透過 _mta-stsTXT record 設定,這點通常會配合 DNSSEC 確保 DNS 的查詢沒有被改。

第二種是透過 HTTPS 在某個特定的 host (mta-sts) 取得 policy 檔案。像是對 example.com 的資料會從 https://mta-sts.example.com/.well-known/mta-sts.txt 取得。

第三種是透過 HTTPS 的 certificate 裡面帶 mta-sts 資訊出來。

不只有 DNS 可以設定,使得整個架構變得有點複雜...

當程式沒問題時就會吃掉輸出的 chronic

跑 cron job 的時候,希望程式有問題的時候通知管理者 (或是執行者),這個可以透過 moreutils 內的 chronic 來達成:

chronic - runs a command quietly unless it fails

chronic 會將 stdout 與 stderr 的輸出結果暫存起來,如果程式正常結束 (exit 0) 就不管他,但如果有問題的時候就會 output 出來 (exit 不是 0,或是 crash),而 cron 在收到 stdout/stderr 有東西時,會寄信給管理者或是執行者,這剛好就是我們要的行為。

算是很好用的指令,沒事你不會想管他輸出什麼啊... XD

幾個 Web API Manager 要設定的東西...

在上一篇提到的「控制瀏覽器裡的 Web API」,用了一兩天後有遇到一些問題,大概整理一下...

  • Gmail 會開不起來,需要將 mail.google.com 列入白名單 (一個阻擋條件都不能設),這是因為遇到瀏覽器的 bug,在「General breakage on specific site · Issue #55 · snyderp/web-api-manager」這邊作者有找到問題,他判斷是瀏覽器的問題後開了 ticket 給 FirefoxChrome,不知道什麼時候會好...
  • 同理,Facebook 右上角的通知也出不來,也是同樣的問題,需要把 www.facebook.com 列入白名單。
  • 另外是 Google Maps 用滑鼠滾輪滾動本來是平滑式的縮放,現在用起來會變成階段式的縮放,原因是 Google Maps 用到 WebGL Specification (在 Lite 裡面會阻擋)。這有兩個方向可以改,一個是把 www.google.com (或是 www.google.com.tw,看你用的網域) 另外開一組設定管理,另外一個是直接把 WebGL Specification 的阻擋關掉。

目前遇到的大概就是這些了...

用郵件訂閱 Google Groups 上的 Mailing List

除了註冊 Google 帳號外,另外一個方式是透過 e-mail 直接登記。在這篇有人問到類似的問題:「How can I subscribe to a Google mailing list with a non-Google e-mail address?」。

不是 Accepted 那個答案,而是 c33s 給的答案:

Look for group email address in the heading of “Group email”, it will look like: Group email (Group Name)@googlegroups.com or visit the group web page on Google Groups, and click on “About this group”.

Send an email to (Group Name)+subscribe@googlegroups.com. +subscribe is the key, which is appended to the end of group’s email address. (Group Name) is the name of the group. Space is substituted by “-” (hyphen).

如果是 trac-announce 這個群組,就寄到 trac-announce+subscribe@googlegroups.com 這個位置,他會寄一封信回來確認,你把整封信回回去就可以了... (信裡有 auth key,寄回去就可以通過)

這個技巧在官方文件裡沒出現過... 但一直都是有效的 :o