AWS SendRawEmail操作:从多个收件人获得非法地址错误。
创始人
2024-11-18 05:31:38
0

当使用AWS SendRawEmail操作时,如果提供的收件人中存在非法地址,会返回一个InvalidParameterValue错误。

为了解决这个问题,你可以在发送邮件之前对每个收件人的地址进行验证。下面是一个使用AWS SDK for Python(Boto3)的示例代码,演示了如何验证收件人地址并排除非法地址:

import boto3

def validate_email_addresses(email_addresses):
    """
    验证并排除非法的收件人地址
    """
    ses_client = boto3.client('ses')
    valid_email_addresses = []
    
    for email_address in email_addresses:
        response = ses_client.verify_email_identity(EmailAddress=email_address)
        
        if response['VerificationStatus'] == 'Success':
            valid_email_addresses.append(email_address)
        else:
            print(f"非法的收件人地址: {email_address}")
    
    return valid_email_addresses

def send_raw_email(from_address, to_addresses, subject, body):
    """
    发送邮件
    """
    ses_client = boto3.client('ses')
    
    # 验证并排除非法的收件人地址
    valid_to_addresses = validate_email_addresses(to_addresses)
    
    if len(valid_to_addresses) > 0:
        response = ses_client.send_raw_email(
            Source=from_address,
            Destinations=valid_to_addresses,
            RawMessage={
                'Data': f"From: {from_address}\n"
                        f"To: {', '.join(valid_to_addresses)}\n"
                        f"Subject: {subject}\n"
                        f"\n"
                        f"{body}"
            }
        )
        
        print("邮件发送成功")
    else:
        print("没有有效的收件人地址")

# 示例用法
from_address = 'sender@example.com'
to_addresses = ['recipient1@example.com', 'recipient2@example.com', 'invalid_address']
subject = '测试邮件'
body = '这是一封测试邮件。'

send_raw_email(from_address, to_addresses, subject, body)

在上面的示例中,我们定义了两个函数:validate_email_addressessend_raw_emailvalidate_email_addresses函数用于验证并排除非法的收件人地址,它使用SES的verify_email_identity方法来验证每个地址。如果验证成功,则将地址添加到有效地址列表中;否则,打印出非法地址。send_raw_email函数用于发送邮件,它首先调用validate_email_addresses函数来获取有效的收件人地址列表,然后使用send_raw_email方法发送邮件。如果存在有效的收件人地址,将打印出"邮件发送成功";否则,将打印出"没有有效的收件人地址"。

在示例代码中,我们将发送邮件的代码封装在了一个函数中,以便在需要时进行调用。你可以根据自己的需求来修改和扩展这段代码。

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...