close

以前網站要使用 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 帳號無誤後,再點選控制台

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

勾選我同意,右下直接點選同意並繼續

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

點擊選取專案,如果不是第一次進來,已有新增過專案,會顯示之前的專案名稱。

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

點擊新增專案

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

輸入專案名稱,並按建立

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

選取剛建立好的專案

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

左側選單中,選取 API 和服務,再點選已啟用的 API 和服務

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

在此專案中,增加啟用 API 和服務

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

搜尋列輸入 gmail api,再從下方搜尋結果點選 Gmail API

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

啟用 Gmail API

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

啟用後,按建立憑證

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

選取使用者資料,然後按下一步

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

設置 OAuth 的同意畫面,按儲存並繼續
a. 應用程式名稱(隨便填入)
b. 使用者支援電子郵件(隨便填入)
c. 開發人員聯絡資訊(隨便填入)

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

範圍(選用),可以直接按儲存並繼續

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

設置 OAuth 用戶端資料,選擇網頁應用程式

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

輸入名稱之後,可以直接點選建立,日後視連線方式,再來設置 Javascript 來源或重新導向URI。
a. 已授權的 JavaScript 來源現在可以先不新增,之後再添加。
b. 已授權的重新導向 URI 現在可以先不新增,之後再添加。

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

憑證建立完成,先不用急著下載或複製憑證,可直接按完成
憑證可以隨時在另一個頁面複製或下載。

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

OAuth 同意畫面,點選發布應用程式,點選確認

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

完成 OAuth 和 Gmail API 都設置好,可以運作!

【學習筆記】一步一步教你 | 如何申請及啟用 Gmail API 的 OAuth 2.0 憑證以供其他程式使用

 

 

五、使用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 寄送郵件的次數通常不會達到這些限制,但仍然比一般的電子郵件客戶端應用程式所設定的限制要高得多。對於一般的使用者而言,這些限制通常是足夠的。

 

 


【學習筆記】一步一步教你 | 如何申請及啟用 Gmail A延申閱讀 - 你也想知道的「學習筆記」:

【學習筆記】無法找到程序輸入貼BCryptHash (在動態連結程式庫bcrypt.dll)

【學習筆記】Squid 2.7 Proxy Server 下載與安裝說明 for Windows 2003 Server.

【學習筆記】如何移除Windows 10升級後,Windows.old系統備份檔案

【學習筆記】Tcl 語法

【學習筆記】10個專業免費的Google Blogger響應式主題模板推薦!FREE

【學習筆記】如何在3分鐘內快速創建一個免費的Blog?新手也能立即上手!

【學習筆記】WordPress 4.5.1 安裝與設定教學

【學習筆記】XAMPP 7.4.3 安裝與設定教學

【學習筆記】XAMPP 7.4.3 + WordPress 5.4.1 下載教學

【學習筆記】如何移除Windows 10應用程式與功能中殘存的項目。

【學習筆記】如何讓Windows 7 自動登入,Windows 10 也適用!

【學習筆記】如何移除Windows 10 內建的應用程式,例如新聞、郵件、行事曆等等。

【學習筆記】如何設定Linux 開機後自動執行某個 script


arrow
arrow

    Good.info5790 發表在 痞客邦 留言(0) 人氣()