Amazon SES 出现错误:发送电子邮件操作:非法地址。

39

我正在尝试通过AWS SES发送电子邮件,但我收到了以下错误:

botocore.exceptions.ClientError: An error occurred (InvalidParameterValue) when calling the SendEmail operation: Illegal address

我已经验证了我要发送邮件的邮箱和收件人邮箱。

这是我的代码:

import boto3

client = boto3.client(
    'ses',
    aws_access_key_id=AWS_ACCESS_KEY,
    aws_secret_access_key=AWS_SECRET_KEY
)


response = client.send_email(
    Destination={
        'ToAddresses': [
            'xxx@xxx.com',
        ],
    },
    Message={
        'Body': {
            'Html': {
                'Charset': 'UTF-8',
                'Data': 'This message body contains HTML formatting. It can, for example, contain links like this one: <a class="ulink" href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide" target="_blank">Amazon SES Developer Guide</a>.',
            },
            'Text': {
                'Charset': 'UTF-8',
                'Data': 'This is the message body in text format.',
            },
        },
        'Subject': {
            'Charset': 'UTF-8',
            'Data': 'Test email',
        },
    },
    ReplyToAddresses=[
    ],
    ReturnPath='',
    ReturnPathArn='',
    Source='xxx@xxx.com',
    SourceArn='',
)

我该怎么修复这个问题?


尽管电子邮件地址可能是“有效的”(可用),但它可能不符合SES可接受的格式。只有7位ASCII可以在不编码的情况下使用。地址中是否存在高于127的代码点的Unicode字符(例如éñ)? - Michael - sqlbot
2个回答

94

尝试移除以下内容:

    ReplyToAddresses=[],
    ReturnPath='',
    ReturnPathArn='',
    SourceArn='',

显然它们不能是空的!


11
节省了我大量时间,AWS需要修复他们的文档,因为非常具有误导性。http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendEmail-property - Santthosh
1
是的,非常有用的答案。如果文档不是完全错误的话就好了。 - smashedtoatoms
1
我遇到了完全相同的问题,但是使用的是Java SDK!(com.amazonaws:aws-java-sdk-ses:1.11.271)。 - selotape
2
我为花费在这个错误上的时间感到尴尬,文档不好,错误信息也不好!谢谢你的帮助! - thul
3
这也解决了“InvalidParameterValue: Invalid email address”问题。 - Koushik Shom Choudhury

2
虽然它与这个问题无关,但在我的情况下,我试图同时向多个地址发送电子邮件。
在此处仅使用一个电子邮件地址即可帮助解决问题。
最初的回答。
'ToAddresses': [
            'xxx@xxx.com',
        ],

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接