使用 Mailjet 傳送電子郵件

Mailjet 是第三方全域電子郵件服務,可讓 App Engine 使用者每月免費寄送 25,000 封電子郵件。不僅如此,Mailjet 還具備以下特點:

  • 遵循歐盟資料隱私權法規。
  • 提供電子郵件和遞送功能,例如可自訂的優先順序設定與自動化的流量管理。
  • 提供 Go、PHP、Nodejs、Java、Python、Ruby 等語言的全方位 API 資源程式庫,可透過 Event API 管理子帳戶、驗證、聯絡人、廣告活動、自訂酬載、統計資料、即時事件,以及剖析作業。
  • 提供 4 種語言以上的全球支援服務,24 小時全年無休。
  • 能夠從 gmail.com 以外的網域傳送電子郵件。

事前準備

在您使用 Mailjet 傳送電子郵件之前,請先完成下列項目:

  1. 建立 Mailjet 帳戶。App Engine 開發人員一開始可享有每月 25,000 封免費電子郵件的配額。

  2. 在 Mailjet 中新增並驗證寄件者的電子郵件地址。

  3. 記下 Mailjet SMTP 設定中的 API 金鑰和密鑰。

  4. 在 Google Cloud Platform 主控台中選取或建立新的 GCP 專案,接著確認該專案含有 App Engine 應用程式,並且已將計費功能啟用:

    前往 App Engine

    如果您的專案含有 App Engine 應用程式且已經啟用計費功能,系統將會開啟「資訊主頁」。否則,請按照提示選擇地區並啟用計費功能。

  5. 將 MailJet API 金鑰與密鑰做為環境變數新增至 app.yaml 檔案。

    1. 安裝 Mailjet npm 套件

      npm install node-mailjet
      
    2. app.flexible.yaml 檔案中完成 Mailjet 設定,例如 API 金鑰和密鑰:

      runtime: nodejs
      env: flex
      
      # The following env variables may contain sensitive information that grants
      # anyone access to your Mailjet account. Do not add this file to your source
      # control.
      env_variables:
        MJ_APIKEY_PUBLIC: <your-mj-apikey-public>
        MJ_APIKEY_PRIVATE: <your-mj-apikey-private>

    3. 需要應用程式程式碼中的程式庫:

      var Mailjet = require('node-mailjet').connect(
        process.env.MJ_APIKEY_PUBLIC,
        process.env.MJ_APIKEY_PRIVATE
      );

    傳送郵件

    如要透過您的應用程式程式碼傳送電子郵件:

    1. 建立新的 Mailjet 用戶端。

    2. 指定電子郵件的詳細資料和內容,包括寄件者的電子郵件和姓名、主旨、訊息內文、收件者。

    3. 擷取伺服器回應以檢查電子郵件狀態。

    例如:

    app.post('/hello', function (req, res, next) {
      var options = {
        'Messages': [
          {
            'From': {
              'Email': 'no-reply@appengine-mailjet-demo.com',
              'Name': 'Mailjet Pilot'
            },
            'To': [
              {
                'Email': req.body.email
              }
            ],
            'Subject': 'Your email flight plan!',
            'TextPart': 'Mailjet on Google App Engine with Node.js',
            'HTMLPart': '<h3>Mailjet on Google App Engine with Node.js</h3>'
          }
        ]
      };
    
      var request = Mailjet.post('send', {'version': 'v3.1'}).request(options);
    
      request
        .then(function (response, body) {
          console.log(response.statusCode, body);
          // Render the index route on success
          return res.render('index', {
            sent: true
          });
        })
        .catch(function (err) {
          return next(err);
        });
    });

    統計資料

    Mailjet Send API 呼叫的回應酬載會提供 MessageID。您可以使用 MessageID 存取電子郵件的相關資訊及統計資料。

    針對 /message 使用 GET 作業可取得電子郵件的基本資訊,像是寄件者、收件者和電子郵件大小等等。如要深入瞭解電子郵件統計資料,包含 API 回應範例,請參閱 Mailjet API 指南

    Event API

    一旦您傳送的電子郵件發生任何相關事件,例如送出郵件或對方開啟郵件,Mailjet Event API 會透過 HTTP 要求 (Webhook) 提供即時通知。這項事件通知功能適用於從交易活動到行銷活動等所有種類的電子郵件。

    您能使用 Event API 有效率地完成特定動作,例如記錄傳送給客戶的行銷電子郵件,或是更新客戶關係管理 (CRM) 系統中已取消訂閱的聯絡人。事件發生時,系統會以近乎即時的速度推送資料,而非一天輪詢 Mailjet API 數次。

    您也可以將事件分門別類,方便您進行大量傳送。如需詳細操作說明,請參閱 Mailjet 說明文件

    內送電子郵件適用的 Parse API

    您也可以使用 Mailjet 接收及剖析電子郵件,再將內容傳送至 Webhook。Mailjet 會統整所有資訊,方便您將資訊儲存至 CRM 或資料庫中。

    Parse API 與 Event API 一樣,當新的電子郵件與預先定義的路徑相符時,就會以近乎即時的速度通知定義的 Webhook,將資料傳回您的應用程式。電子郵件是以 JSON 封包的結構傳送到您的應用程式,其中包含您需要的所有實用資訊,像是寄件者、收件者、主旨、內文、標頭等。

    請參閱 Mailjet 的 Parse API 說明文件,進一步瞭解每封郵件傳送的其他欄位,以及 DNS 設定和使用說明。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Node.js 適用的 App Engine 彈性環境文件