Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
如何在 Amazon SES 中阻止来自特定域或电子邮件地址的电子邮件?
我不希望我的 Amazon Simple Email Service (Amazon SES) 身份接收来自特定域或电子邮件地址的电子邮件。
解决方法
要阻止特定域名或电子邮件地址,使其不向您的 Amazon SES 身份发送电子邮件,请完成以下步骤:
-
打开 Lambda 控制台。
**注意:**Lambda 函数必须位于您使用 Amazon SES 的 AWS 区域。 -
选择 Create function(创建函数)。
-
选择 Author from scratch(从头开始编写)。
-
对于 Function Name(函数名称),输入您的函数的名称。例如,您可以输入 SESReceiptRule。
-
对于 Runtime(运行时),选择 Node.js 20.x。
-
在 Change default execution role(更改默认执行角色),对于 Execution Role(执行角色),请选择 Create a new role with basic Lambda permissions(创建具有基本 Lambda 权限的新角色)。
-
选择 Create function(创建函数)。
-
在 Code source(代码源)下,输入以下代码:
// 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' }; } }; -
在 Environment variables(环境变量)下,对于 Key(密钥),输入 blockingList。
**注意:**您可以创建无限数量的环境变量。但是,该集合的总大小不能超过 4 KB。有关详细信息,请参阅创建 Lambda 环境变量。 -
对于 blockingList 值,输入要阻止的电子邮件地址和域名的逗号分隔列表。例如,输入“example.com, JohnDoe@example.com”。
**注意:**您无需更改 Lambda 函数代码即可编辑电子邮件地址和域名列表。 -
选择 Save(保存)。
创建 Amazon SES 接收规则
完成以下步骤:
- 打开 Amazon SES 控制台。
- 在导航窗格中,选择 Email Receiving(电子邮件接收)。
- 选择 Create a Rule Set(创建规则集),输入规则集名称,然后选择 Create a Rule Set(创建规则集)。或者,选择现有的活动规则集。
**注意:**如果您要创建一个新的规则集,请选择该规则集,然后选择 Set as Active Rule Set(设置为活动规则集)。 - 选择 View Active Rule Set(查看活动规则集)。
- 选择 Create Rule(创建规则)。
**注意:**您也可以选择更新现有规则。 - 对于 Rule name(规则名称),输入规则的名称。然后,填写以下字段:
对于 Status(状态),选择 Enabled(已启用)。
(可选)配置传输层安全性协议 (TLS) 或垃圾邮件和病毒扫描。 - 选择 Next(下一步)。
- 在 Recipient conditions(收件人条件)下,选择Add new recipient condition(添加新收件人条件)。输入与您的 Amazon SES 身份关联的电子邮件地址或域。
**重要事项:**输入您不想接收电子邮件的电子邮件地址或域名。请勿输入您要阻止从其发送电子邮件的电子邮件地址或域。例如,如果您的 Amazon SES 身份使用的电子邮件地址为“JaneRoe@example.net”,而您要阻止来自“example.com”的电子邮件,则应输入“JaneRoe@example.net”。 - 选择 Next(下一步)。
- 在 Add actions(添加操作)下,对于 Add new action(添加新操作),选择 Invoke AWS Lambda function(调用 AWS Lambda 函数)。然后,填写以下字段:
对于 Lambda 函数,选择您的函数。
对于调用类型,选择 RequestResponse invocation(请求响应调用)。
(可选)配置 SNS 主题。 - 选择 Next Step(下一步)。
- 选择 Create Rule(创建规则)。
注意:如果您看到缺少权限对话框,其中的消息为“无法访问 Lambda 函数”,则 Amazon SES 需要该函数的权限。选择 Add permissions(添加权限)以配置所需的权限。
查看该函数的 CloudWatch 日志
要验证该电子邮件是否已被阻止,请完成以下步骤:
- 打开 Amazon CloudWatch 控制台。
- 在导航窗格中,选择 Logs(日志)。
- 在日志组列表中,选择您的 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
相关信息
- 语言
- 中文 (简体)
