当我尝试在“收件人:”字段中发送包含unicode字符的电子邮件时,Amazon SES会返回上述错误。 Amazon SES Documentation says此类电子邮件地址应以MIME编码字语法发送,邮件gem(由ActionMailer使用)正确执行,它发送为:=?UTF-8?B?dmluYXl2aW5heeKAmXNAbWFpbGluYXRvci5jb20 =?= < / p>
答案 0 :(得分:3)
我看到同样的错误,发现这是由于ReturnPath参数不正确造成的。该错误表示您的ReturnPath参数没有域名。 ReturnPath参数应该是一个电子邮件地址,它是转发退回通知的地址。
答案 1 :(得分:1)
这个问题很老了,但我会添加我的案例,因为它似乎是第一个在AWS SES上搜索“Missing finale @domain”问题的结果。
(我发现的唯一其他问题是AWS SES Missing final '@domain' PHP SDK )
与另一个问题的答案一样,每次参数未通过验证时都会返回InvalidParameterValue。
在我的情况下,我在python上使用boto3,使用一些可能为空的键组成Destination参数,如下所示:
to = []
bcc = []
# Some code to populate one or both lists..
response = client.send_email(
Destination={
'ToAddresses': to,
'BccAddresses': bcc
},
Message={
'Body': {
'Html': {
'Charset': MAIL_CHARSET,
'Data': message,
},
'Text': {
'Charset': MAIL_CHARSET,
'Data': message,
},
},
'Subject': {
'Charset': MAIL_CHARSET,
'Data': subject,
},
},
Source=MAIL_SENDER,
)
如果分配给Destination参数的dict中的两个键之一是空列表,则返回InvalidParameterValue。 解决方案是简单地删除空的,无用的密钥:
to = []
bcc = []
# Some code to populate one or both lists..
destinations = {
'ToAddresses': to,
'BccAddresses': bcc
}
response = client.send_email(
Destination={typ: addresses
for typ, addresses in destinations.iteritems()
if addresses},
Message={
'Body': {
'Html': {
'Charset': MAIL_CHARSET,
'Data': message,
},
'Text': {
'Charset': MAIL_CHARSET,
'Data': message,
},
},
'Subject': {
'Charset': MAIL_CHARSET,
'Data': subject,
},
},
Source=MAIL_SENDER,
)
答案 2 :(得分:0)
我刚刚收到这个错误是因为我将电子邮件地址存储在 .cfg 文件中(它使用与 Windows .ini 文件相同的结构)并且我在电子邮件地址周围加上引号,就像程序员习惯于使用字符串一样但你不应该在 cfg 文件中这样做:
[email_settings]
email_to="some_user@domain.com"
当我删除引号时,它起作用了。我确定有多个问题会导致此错误。