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方法发送邮件。如果存在有效的收件人地址,将打印出"邮件发送成功";否则,将打印出"没有有效的收件人地址"。

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

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...