以前網站要使用 Gmail 寄信,直接連線 smtp.gmail.com,並輸入帳密就好。後來 google 管理介面增加「低安全性應用程式」的項選,要啟用它才能寄。但這種直接透過帳密寄信的做法,也將在今年(2023)5月底結束,之後就必需升級到 OAuth2.0 及 Gmail API 才能透過 Gmail 寄信。
內容目錄
一、什麼是OAuth 2.0
二、使用OAuth 2.0 來寄送郵件有以下好處
三、申請 Gmail API OAuth 2.0前的準備工作
四、一步一步設置教學
五、使用Gmail API 的使用限制及注意事項
一、什麼是OAuth 2.0
OAuth 2.0(開放授權協議 2.0)是一種用於網絡應用程序之間授權訪問的協議。它允許一個應用程序(稱為“客戶端”)獲得對另一個應用程序(稱為“資源所有者”)的資源訪問權限,而不需要分享資源所有者的帳戶憑證。
OAuth 2.0 的主要目的是實現安全的第三方授權,這意味著一個應用程序(客戶端)可以獲得訪問另一個應用程序(資源服務)的資源,而無需共享用戶的密碼或憑證。它為用戶提供了更好的安全性,並使他們能夠控制對其數據的訪問權限。
OAuth 2.0 協議通常涉及以下主要參與方:
1. 客戶端(Client):要訪問資源的應用程序。
2. 授權伺服器(Authorization Server):用於驗證客戶端並獲得用戶授權的伺服器。
3. 資源伺服器(Resource Server):保存用戶數據的伺服器。
4. 資源所有者(Resource Owner):擁有資源的用戶。
OAuth 2.0 使用不同的授權授予類型,例如授權碼(Authorization Code)、隱式授權(Implicit Grant)、密碼授權(Password Grant)和客戶端憑證授權(Client Credentials Grant),以確保數據的安全性和隱私性。通過 OAuth 2.0,用戶可以選擇授予或撤銷對其數據的訪問權限,從而實現更安全的應用程序互操作性。
總之,OAuth 2.0 是一種用於授權和驗證的開放標準,它在不共享用戶密碼的情況下,使不同應用程序能夠訪問和共享數據,提高了安全性和用戶控制。
二、使用OAuth 2.0 來寄送郵件有以下好處
當您使用 Gmail 帳戶透過郵件寄送程式傳送郵件時,大多數人通常會在設定中輸入他們的 Google 帳戶名稱和密碼。然而,這種方式有一個問題,即當您需要更改 Google 帳戶的密碼時,您必須立即更新郵件寄送程式中的密碼設定,否則郵件寄送可能會因為密碼變更而無法正常工作。
然而,如果您改為使用 OAuth 2.0 並進行授權,以便郵件寄送程式可以發送郵件,您就不會再遇到這個困擾。無論您何時更改了 Google 帳戶的密碼,這不會影響郵件寄送程式的功能。在使用 Gmail API 的 OAuth 2.0 憑證並將其授權給郵件寄送程式的過程中,該程式在取得授權後直接呼叫 Gmail API,並不使用您的帳號和密碼進行身份驗證,而是使用一個專屬於該郵件寄送程式的金鑰。這就是為什麼即使您更改 Google 帳戶密碼,這個金鑰仍然有效,不受密碼變更的影響。
此外,不論您使用的是個人 Gmail 帳戶,或者是由 Google 提供給教育機構、組織或企業使用的 G Suite(現在稱為 Google Workspace),只要您使用的是由 Google 提供的電子郵件服務,您都可以使用 Gmail API。
如果您需要大量寄送郵件,建議考慮改用 OAuth 2.0。這樣一來,您將不再因為需要更改 Google 帳戶的密碼而感到困擾,並且能夠更有效地管理您的郵件發送流程。 Gmail API 提供了更穩定且持久的方式來處理郵件傳送,而不必擔心密碼更改對您的工作造成干擾。
以下分析幾點好處如下:
1. 安全性:OAuth 2.0 提供了一個更安全的方式來授權應用程序訪問您的郵件帳戶,而不需要共享您的郵件密碼。這可以幫助防止潛在的安全漏洞,因為應用程序無法存儲或擁有您的密碼。
2. 用戶控制:使用OAuth 2.0,您可以授予應用程序對您的郵件帳戶的有限訪問權限,例如只能讀取郵件或只能發送郵件,而無需提供完整的郵件帳戶訪問權限。這使您能夠更好地控制應用程序對您的數據的訪問。
3. 簡單性:OAuth 2.0 簡化了應用程序的授權過程,並使其更容易實現,而不需要處理複雜的郵件帳戶設置和密碼管理。這使開發人員能夠更快速地將 OAuth 2.0 集成到其應用程序中。
4. 可撤銷權限:您可以隨時撤銷授予應用程序的訪問權限,而無需更改您的郵件密碼。這使得管理應用程序的訪問權限變得更加靈活和安全。
三、申請 Gmail API OAuth 2.0前的準備工作
具體需要的準備工作取決於您申請 Gmail API 的使用方式。以下是根據您的應用程式需要的不同情況的一些建議準備工作:
通知網站設定:
如果您的 Gmail API 應用程序需要傳送通知到特定網站,請確保您擁有該網站的域名管理權限,也就是您需要有權更改該網站的 DNS 設定。
如果您具備域名管理權限,請使用您要用來發送 Gmail 郵件的 Google 帳戶登入 Google Search Console,並在其中進行網站所有權的驗證。
如果您無法管理該網站的域名,您可以要求具有管理權限的網站管理員先在 Google Search Console 中驗證該網站的所有權,然後將這個權限分配給您的 Google 帳戶,以便您可以使用 Gmail API 來發送郵件通知。
網站內容設定:
根據您的使用目的,您可能需要執行以下操作:
建立「隱私權政策」和「服務條款」頁面,然後提供這兩個頁面的完整網址。這是為了確保您的應用程序遵守相關隱私和服務條款的法律要求。
如果需要,上傳一張 120 像素見方的圖片到您的網站,然後取得該圖片的網址。這將在 Gmail API 或其他需要產品標誌的 Google API 產品中使用。
根據您的具體需求,您可能需要執行上述一些或全部的準備工作,以確保您的 Gmail API 應用程序能夠順利運作並符合相關法律和政策要求。
在申請 Gmail API OAuth 2.0 前,需要進行以下一些準備工作:
1. 建立 Google 開發者帳戶:如果您還沒有 Google 開發者帳戶,需要先建立一個。這可以透過 Google 開發者控制台(Google Developers Console)完成。請確保您有一個 Google 帳戶來訪問這個控制台。
2. 建立專案:在 Google 開發者控制台中,建立一個新的專案,並為該專案命名。這個專案將用於託管您的 Gmail API 應用程序。
3. 啟用 Gmail API:在 Google 開發者控制台中,啟用 Gmail API。這將允許您的應用程序與 Gmail 服務進行互動。
4. 設定 OAuth 同意畫面:在專案中設定 OAuth 同意畫面(OAuth consent screen)。這個畫面會提示用戶授權您的應用程序訪問其 Gmail 帳戶。您需要提供應用程序的名稱、圖標、聯絡資訊等信息。
5. 建立 OAuth 2.0 憑證:在 Google 開發者控制台中,建立 OAuth 2.0 憑證。您需要選擇 "應用程式類型"(Application type)並設定相關的設置。對於 Gmail API,通常您需要選擇 "網頁應用程式"(Web application)或 "其他非 Google 平台應用程式"(Other non-Google platform application)。
6. 設定授權範圍:確定您的 OAuth 2.0 憑證設定了正確的授權範圍,以確保您的應用程序可以執行所需的操作,如讀取或寫入郵件。
7. 取得應用程序金鑰或憑證:根據您的應用程序類型,取得相關的金鑰或憑證,以便您的應用程序可以通過 OAuth 2.0 訪問 Gmail API。這些金鑰或憑證將用於身份驗證和授權。
一旦完成了這些準備工作,您的應用程序將能夠使用 Gmail API 進行授權的郵件操作,而不需要共享用戶的密碼。這提高了安全性,並簡化了密碼更改時的管理。
四、一步一步設置教學
登入與設置 Gmail API
連線到 Google Cloud https://cloud.google.com/
右上角,確認登入的 gmail 帳號無誤後,再點選控制台。
勾選我同意,右下直接點選同意並繼續。
點擊選取專案,如果不是第一次進來,已有新增過專案,會顯示之前的專案名稱。
點擊新增專案。
輸入專案名稱,並按建立。
選取剛建立好的專案。
左側選單中,選取 API 和服務,再點選已啟用的 API 和服務。
在此專案中,增加啟用 API 和服務。
在搜尋列輸入 gmail api,再從下方搜尋結果點選 Gmail API。
啟用 Gmail API
啟用後,按建立憑證。
選取使用者資料,然後按下一步。
設置 OAuth 的同意畫面,按儲存並繼續。
a. 應用程式名稱(隨便填入)
b. 使用者支援電子郵件(隨便填入)
c. 開發人員聯絡資訊(隨便填入)
範圍(選用),可以直接按儲存並繼續。
設置 OAuth 用戶端資料,選擇網頁應用程式。
輸入名稱之後,可以直接點選建立,日後視連線方式,再來設置 Javascript 來源或重新導向URI。
a. 已授權的 JavaScript 來源現在可以先不新增,之後再添加。
b. 已授權的重新導向 URI 現在可以先不新增,之後再添加。
憑證建立完成,先不用急著下載或複製憑證,可直接按完成。
憑證可以隨時在另一個頁面複製或下載。
到 OAuth 同意畫面,點選發布應用程式,點選確認。
完成 OAuth 和 Gmail API 都設置好,可以運作!
五、使用Gmail API 的使用限制及注意事項
使用 Gmail API 寄送郵件有一些限制,這些限制是為了防止濫用服務而設的。
所有的電子郵件系統都根據收件者總數來計算寄送的數量。舉例來說,如果您寄送 5 封郵件給 10 個不同的收件人,這將被視為向 50 位收件人寄送。
根據 Google 官方文件,Google 對每個帳戶設置了每秒最多使用 250 個 Quota Unit(配額單位)的限制。不同的 Gmail API 方法將消耗不同數量的配額單位。例如,使用 messages.send 方法寄送郵件,每個收件人將消耗 100 個配額單位,因此每位 Gmail API 使用者每秒最多只能寄送給 2.5 位收件人。
如果您需要寄送兩封郵件,分別給 300 和 250 個收件人,總共需要寄送給 550 位收件人,而 Gmail API 需要 220 秒才能完成這個任務。
每個 Gmail API 帳戶每日總配額為 250 x 60 x 60 x 24,總計 21,600,000 個配額單位。這意味著您每日最多可以寄送郵件給 216,000 位收件人。但是,根據 Google 帳戶類型和寄送方式的不同,每日的寄送上限可能會有所不同,詳細資訊請參考《G Suite 的 Gmail 傳送限制》或《SMTP 轉發服務的傳送限制》。
請注意,儘管 Gmail API 寄送郵件的次數通常不會達到這些限制,但仍然比一般的電子郵件客戶端應用程式所設定的限制要高得多。對於一般的使用者而言,這些限制通常是足夠的。
延申閱讀 - 你也想知道的「學習筆記」:
【學習筆記】無法找到程序輸入貼BCryptHash (在動態連結程式庫bcrypt.dll)
【學習筆記】Squid 2.7 Proxy Server 下載與安裝說明 for Windows 2003 Server.
【學習筆記】如何移除Windows 10升級後,Windows.old系統備份檔案
【學習筆記】10個專業免費的Google Blogger響應式主題模板推薦!FREE
【學習筆記】如何在3分鐘內快速創建一個免費的Blog?新手也能立即上手!
【學習筆記】XAMPP 7.4.3 + WordPress 5.4.1 下載教學
【學習筆記】如何移除Windows 10應用程式與功能中殘存的項目。
【學習筆記】如何讓Windows 7 自動登入,Windows 10 也適用!
【學習筆記】如何移除Windows 10 內建的應用程式,例如新聞、郵件、行事曆等等。
【學習筆記】如何設定Linux 開機後自動執行某個 script
留言列表