【问题标题】:AWS SES Missing final '@domain' PHP SDKAWS SES 缺少最终的“@domain”PHP 开发工具包
【发布时间】:2014-07-24 04:36:58
【问题描述】:

这里有一个花絮,这样您就不必像我刚才那样花费两个小时几乎扯掉头发。

我收到以下错误消息: 致命错误:未捕获的 Aws\Ses\Exception\SesException:AWS 错误代码:InvalidParameterValue,状态代码:400,AWS 请求 ID:[已为 stackoverflow 删除],AWS 错误类型:客户端,AWS 错误消息:缺少最终的“@domain”,用户代理:aws-sdk-php2/2.6.6 Guzzle/3.9.1 curl/7.36.0 PHP/5.5.12

早期的错误显示正在发生验证,(例如,ToAddresses 必须是一个数组),所以我假设数据已经过验证。在某种程度上,我错了。

【问题讨论】:

  • 确保检查 SES/SMTP 调用中包含的 所有 电子邮件参数 - 在我的情况下,所有 From、To、CC 等都是正确的,但我有一个回复 -收件人(通过一些自定义逻辑插入)不是有效的电子邮件 - 字面意思是“缺少最终的@domain”

标签: php amazon-web-services amazon-ses


【解决方案1】:

尽管有名称,但这是一个错误,表明 SES 不喜欢您的参数之一。在我的例子中,我使用this page from the PHP SDK documentation 上的代码来构建sendEmail() 的参数,并将Source 保留为“字符串”。

尝试将sendEmail() 的参数构建为$msg 并使用echo "sendSES msg: ".print_r($msg, true); 来查看SES 的确切情况。

Postfix 用户可能会遇到邮件地址与 ec2 域名不匹配的问题。这是一个不同的问题,但相似之处在于 SES 拒绝了数据的语义。

【讨论】:

  • 因此,您将 Source 保留为“字符串”,这就是问题所在。你做了什么改变来解决这个问题?
  • 根据 sendEmail 的参数详细信息,Source 应为“发送电子邮件的电子邮件地址。此电子邮件地址必须通过 Amazon SES 单独验证,或者来自已通过 Amazon 验证的域赛斯。”我将其更改为我发送邮件的电子邮件地址。
猜你喜欢
  • 1970-01-01
  • 2023-03-15
  • 2021-06-15
  • 2020-09-30
  • 2016-04-26
  • 2021-01-21
  • 2014-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多