如何在 Amazon SES 中封鎖某些網域或電子郵件地址的電子郵件?
2 分的閱讀內容
0
我不想要 Amazon Simple Email Service (Amazon SES) 身分去接收特定網域或電子郵件地址的電子郵件。
解決方法
若要封鎖特定網域或電子郵件地址,避免其傳送電子郵件至您的 Amazon SES 身分,請完成下列步驟:
-
開啟 Lambda 主控台。
**注意:**Lambda 函數必須位於與 Amazon SES 搭配使用的相同 AWS 區域中。 -
選擇建立函數。
-
選取從頭開始撰寫。
-
針對函數名稱,輸入函數的名稱。例如,可以輸入 SESReceiptRule。
-
對於 執行時期,請選擇 Node.js 20.x。
-
在變更預設執行角色下,對於執行角色選擇使用基本 Lambda 權限建立新角色。
-
選擇建立函數。
-
在程式碼來源下,輸入下列程式碼:
// Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: MIT-0 'use strict'; export const handler = async (event) => { console.log('Blocking email filter starting'); const sesNotification = event.Records[0].ses; const messageId = sesNotification.mail.messageId; const receipt = sesNotification.receipt; const mail = sesNotification.mail; // Convert the environment variable into array. Clean spaces from it. const blockingListString = process.env.blockingList; const blockingListArray = blockingListString.replace(/\s/g, '').split(","); // Check if the mail source matches with any of the email addresses or domains defined in the environment variable const isListed = () => { return blockingListArray.some(item => mail.source.endsWith(item)); }; console.log('Processing message:', messageId); // Processing the message if (isListed()) { console.log('Rejecting messageId: ', messageId, ' - Source: ', mail.source, ' - Recipients: ', receipt.recipients, ' - Subject: ', mail.commonHeaders['subject']); return { disposition: 'STOP_RULE_SET' }; } else { console.log('Accepting messageId:', messageId, ' - Source: ', mail.source, ' - Recipients: ', receipt.recipients, ' - Subject: ', mail.commonHeaders['subject']); return { disposition: 'CONTINUE' }; } };
-
在環境變數下,針對索引鍵,輸入blockingList。
**注意:**您可以建立無限數量的環境變數。但是,規則集的大小總計不得超過 4 KB。如需詳細資訊,請參閱建立 Lambda 環境變數。 -
針對 blockingList 的值,輸入您想要封鎖的電子郵件地址和網域的逗點分隔清單。例如,輸入「example.com、JohnDoe@example.com」。
**注意事項:**您不需要變更 Lambda 函數程式碼,即可編輯電子郵件地址和網域的清單。 -
選擇儲存**。**
建立 Amazon SES 接收規則
完成下列步驟:
- 開啟 Amazon SES 主控台。
- 在導覽窗格中,選擇「電子郵件接收」。
- 選擇建立規則集、輸入規則集名稱,然後選擇建立規則集。或者,選擇現有的作用中規則集。
注意:如果您建立新的規則集,則選擇該規則集,然後選擇設定為作用中的規則集。 - 選擇檢視作用中的規則集。
- 選擇建立規則。
**注意:**您也可以選擇更新現有的規則。 - 針對規則名稱,輸入規則的名稱。然後,填寫下列欄位:
對於狀態,選擇已啟用。
(選擇性) 設定 Transport Layer Security (TLS) 或垃圾郵件和病毒掃描。 - 選擇下一步。
- 在收件者條件下,選擇新增新的收件者條件。請輸入與您的 Amazon SES 身分相關聯的電子郵件地址或網域。
**重要:**輸入您不想接收電子郵件的電子郵件地址或網域。請勿輸入您想要封鎖其電子郵件的電子郵件地址或網域。例如,如果您的 Amazon SES 身分使用電子郵件地址 "JaneRoe@example.net",而您想要封鎖來自 "example.com" 的電子郵件,請輸入 "JaneRoe@example.net"。 - 選擇下一步。
- 在新增動作下,對於新增動作,選擇調用 AWS Lambda 函數。然後,完成下列欄位:
對於 Lambda 函數,選擇您的函數。
對於調用類型,選擇 RequestResponse 調用。
(選擇性) 設定 ** SNS 主題**。 - 選擇下一步。
- 選擇建立規則。
注意:如果看到缺少權限對話方塊,其內訊息為「 無法存取 Lambda 函數」,則 Amazon SES 需要該函數的權限。選擇新增權限以設定必要權限。
檢查該函數的 CloudWatch 日誌
若要確認電子郵件是否被封鎖,請完成下列步驟:
- 開啟 Amazon CloudWatch 主控台。
- 在瀏覽窗格中,選擇日誌。
- 從日誌群組清單中,選擇 Lambda 函數的日誌群組。例如,選擇 /aws/lambda/name_of_your_function。
- 選擇要檢查的日誌串流。日誌串流會顯示 Lambda 函數已處理的電子郵件訊息和網域。
範例日誌串流:14:08:25 START RequestId: aa939984-1b9b-11e7-83d2-efc6877bdc9b Version: $LATEST 14:08:25 2017-04-07T14:08:25.957Z aa939984-1b9b-11e7-83d2-efc6877bdc9b Blocking email filter starting 14:08:25 2017-04-07T14:08:25.958Z aa939984-1b9b-11e7-83d2-efc6877bdc9b Processing message: jc0iurgrtkrsrs7f5pk0rsmf4r3q0poikdjfdi01 14:08:25 2017-04-07T14:08:25.959Z aa939984-1b9b-11e7-83d2-efc6877bdc9b Rejecting messageId: jc0iurgrtkrsrs7f5pk0rsmf4r3q0poikdjfdi01 - Source: user@example.com - Recipients: [ 'user@domain.com' ] - Subject: This is an unwanted message 14:08:25 END RequestId: aa939984-1b9b-11e7-83d2-efc6877bdc9b
相關資訊
AWS 官方已更新 1 個月前
沒有評論
相關內容
- 已提問 1 年前lg...
- 已提問 6 個月前lg...
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前