為什麼我無法從私有 Amazon VPC 內的 EC2 或 Lambda 執行個體傳送 SES 電子郵件?

1 分的閱讀內容
0

我想要使​​用 Amazon Simple Email Service (SES) 從 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體或 Amazon Virtual Private Cloud (VPC) 內的 AWS Lambda 函數傳送電子郵件。

簡短描述

預設情況下,在 Amazon VPC 內部署的 Amazon EC2 執行個體和 Lambda 函數沒有直接的網際網路存取權。若要傳送電子郵件,Amazon SES API 需要傳出網路連線來與 Amazon SES 服務進行通訊。

解決方法

將 Amazon SES SMTP 介面與 Amazon VPC 端點結合使用

若要使用 Amazon SES 簡單郵件傳輸協定 (SMTP) 介面傳送電子郵件,請完成以下步驟:

  1. 在您的 Amazon VPC 中為 Amazon SES SMTP 服務建立一個新的 Amazon VPC 端點
    **注意:**Amazon VPC 端點不支援跨 AWS 區域的請求。在您想要發出 API 呼叫的相同區域中建立端點。
  2. 確認您的執行個體或 Lambda 函數的存取控制清單 (ACL) 是否允許傳出流量到 Amazon SES SMTP 端點。如果您使用 Lambda 函數,請確認您已將 Amazon SES SMTP 端點與相同的子網路關聯至您的 Lambda 函數。
  3. 更新您的應用程式,以使用 SMTP 協定並連線到 Amazon SES SMTP 端點。

將 Amazon SES API 連線到網際網路

**先決條件:**檢查執行個體角色或 Lambda 執行角色是否具有 ses:SendEmailses:SendRawEmail 權限。另外,確認您的電子郵件地址身分網域身分

若要使用 Amazon SES API,請在公用子網路中設定 NAT 閘道,以允許從私有子網路存取網際網路。您也可以在公用子網路中部署和設定代理伺服器,以轉送來自私有子網路的網際網路流量。

然後,測試與 Amazon SES SMTP 端點連線

**注意:**預設情況下,Amazon EC2 會限制所有執行個體上 SMTP 連接埠 25 上的傳出流量

相關資訊

使用 Amazon SES SMTP 介面傳送電子郵件

讓 Lambda 函數存取 Amazon VPC 中的資源

如何對 Amazon SES 的 SMTP 連線或逾時問題進行疑難排解?

AWS 官方
AWS 官方已更新 2 個月前