首頁 > web前端 > js教程 > 主體

建置專業電子郵件服務:Gmail OAuth Express Webhooks

Linda Hamilton
發布: 2024-10-28 02:47:30
原創
120 人瀏覽過

電子郵件通知對於現代 Web 應用程式至關重要。在本指南中,我們將使用 Express.js 和 Gmail 的 OAuth2 驗證來建立安全的電子郵件通知服務。我們的服務將接受 webhook 請求並根據傳入資料自動發送電子郵件。

我們正在建造什麼

我們將建立一個 Express 伺服器:

  • 透過 POST 請求接收 webhook 資料
  • 使用 OAuth2 透過 Gmail 進行身份驗證
  • 根據 webhook 負載發送自訂電子郵件
  • 優雅地處理錯誤

先決條件

  • 您的電腦上安裝了 Node.js
  • 啟用 Gmail API 的 Google Cloud Console 專案
  • OAuth2 憑證(客戶端 ID、客戶端金鑰、刷新令牌)
  • 對 Express.js 和 async/await 的基本了解

項目設定

首先,安裝所需的軟體包:

npm install express body-parser nodemailer googleapis dotenv
登入後複製
登入後複製
登入後複製

使用您的憑證建立 .env 檔案:

CLIENT_ID=your_client_id
CLIENT_SECRET=your_client_secret
REDIRECT_URI=your_redirect_uri
REFRESH_TOKEN=your_refresh_token
EMAIL_USER=your_email@gmail.com
登入後複製
登入後複製

如果您在設定這些憑證時遇到任何困難,就像我一樣,您可以按照以下步驟操作...

第 1 步:建立新的 Google Cloud 專案:

a.前往 https://console.cloud.google.com/
b.點選頁面頂端的項目下拉清單
c.點選「新項目」
d.輸入項目名稱並點選「建立」

Build a Professional Email Service: Gmail OAuth Express   Webhooks

第 2 步:啟用 Gmail API:
一個。在左側邊欄中,前往「API 與服務」> 「圖書館」
b.搜尋「Gmail API」
c.點選“Gmail API”,然後點選“啟用”

Build a Professional Email Service: Gmail OAuth Express   Webhooks


第 3 步:設定 OAuth 同意畫面:
一個。前往「API 與服務」> 「OAuth 同意畫面」
b.選擇「外部」作為使用者類型,然後按一下「建立」
c.填寫必填欄位:
- 應用程式名稱:[您的應用程式名稱]
- 使用者支援電子郵件:[您的電子郵件]
- 開發者聯絡資訊:[您的電子郵件]
d.點選「儲存並繼續」
e.在「範圍」頁面上,點選「新增或刪除範圍」
f.尋找並選擇「https://mail.google.com/」範圍
g。點擊“更新”,然後點擊“儲存並繼續”
h.在「測試使用者」頁面,點選「新增使用者」
我。新增您的 Gmail 地址並點擊「儲存並繼續」
j。查看摘要並點擊“返回儀表板”


第 4 步:建立 OAuth2 憑證:
一個。前往「API 與服務」> 「憑證」
b.點選「建立憑證」> “OAuth 用戶端 ID”
c.選擇「Web應用程式」作為應用程式類型
d.名稱:[您的應用程式名稱]
e.授權的 JavaScript 來源:新增伺服器的網域(例如,用於本機開發的 http://localhost:3000)
Build a Professional Email Service: Gmail OAuth Express   Webhooks
f.授權重新導向 URI:
- 新增:https://developers.google.com/oauthplayground
- 新增伺服器的回呼 URL(如果有的話)(例如,http://localhost:3000/auth/google/callback)
g。點選「建立」
h.彈出視窗將顯示您的客戶端 ID 和客戶端金鑰。安全地保存這些。


第 5 步:取得新的刷新令牌:
一個。前往 https://developers.google.com/oauthplayground/

Build a Professional Email Service: Gmail OAuth Express   Webhooks

b.點選右上角的齒輪圖示(如設定)
c.點選複選框「使用您自己的 OAuth 憑證」
d.輸入您的新客戶端 ID 和客戶端金鑰
e.關閉設定
f.在左側邊欄中,找到「Gmail API v1」
g。選擇 https://mail.google.com/
h.點選「授權API」
我。選擇您的 Google 帳戶並授予請求的權限
j。在下一個畫面上,按一下「將授權碼兌換為令牌」
k.從回應複製「刷新令牌」

如果您在過程中或測試電子郵件功能時遇到任何問題,請提供您在評論中看到的具體錯誤訊息或行為。


程式碼解釋

讓我們一步一步分解實現:

1. 初始設定和依賴關係

npm install express body-parser nodemailer googleapis dotenv
登入後複製
登入後複製
登入後複製

這部分設定我們的 Express 伺服器並導入必要的依賴項。我們使用 body-parser 來解析 JSON 請求,並使用 dotenv 來管理環境變數。

2.OAuth2配置

CLIENT_ID=your_client_id
CLIENT_SECRET=your_client_secret
REDIRECT_URI=your_redirect_uri
REFRESH_TOKEN=your_refresh_token
EMAIL_USER=your_email@gmail.com
登入後複製
登入後複製

我們使用 Google 的驗證庫建立 OAuth2 用戶端。這可以使用 Gmail 的 API 處理令牌刷新和身份驗證。

3. 郵件發送功能

const express = require("express");
const bodyParser = require("body-parser");
const nodemailer = require("nodemailer");
const { google } = require("googleapis");
require("dotenv").config();

const app = express();
app.use(bodyParser.json());
登入後複製

此功能:

  • 從webhook負載中提取數據,您可以根據需要修改負載
  • 取得新的訪問令牌
  • 使用 OAuth2 驗證建立傳輸
  • 發送包含自訂內容的電子郵件

4.Webhook端點

const oAuth2Client = new google.auth.OAuth2(
  CLIENT_ID,
  CLIENT_SECRET,
  REDIRECT_URI
);
oAuth2Client.setCredentials({ refresh_token: REFRESH_TOKEN });
登入後複製

我們的 webhook 端點:

  • 接收 POST 請求
  • 處理 webhook 資料
  • 發送電子郵件
  • 回傳適當的回應

測試

用curl或Postman測試你的webhook:

npm install express body-parser nodemailer googleapis dotenv
登入後複製
登入後複製
登入後複製

故障排除

常見問題及解決方案:

  1. 驗證錯誤:檢查您的 OAuth2 憑證
  2. 令牌過期:確保刷新令牌有效
  3. 缺少資料:驗證 webhook 負載

結論

您現在擁有一個安全的、OAuth2驗證的電子郵件通知系統!此實現為建構更複雜的通知系統提供了堅實的基礎,同時保持安全性和可靠性。

希望這篇文章對您設定電子郵件服務有用。

編碼愉快! ?

以上是建置專業電子郵件服務:Gmail OAuth Express Webhooks的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!