从PHP / AWS SDK向AmazonSES添加域以进行验证

时间:2016-03-22 13:36:13

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

我正在尝试从PHP添加用于验证的域到我的Amazon SES帐户。我尝试使用以下代码:

$result = $amazonSesClient->verifyDomainDkim([
'Domain' => 'mydomain.com', // REQUIRED
]);

但它导致了这一点(请注意,此时SES帐户上没有可用于验证的域名):

PHP Fatal error:  Uncaught exception 'Aws\Ses\Exception\SesException' with message 'Error executing "PutIdentityPolicy" on "https://email.us-west-2.amazonaws.com"; AWS HTTP error: Client error: `POST https://email.us-west-2.amazonaws.com` resulted in a `400 Bad Request` response:
<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
  <Error>
    <Type>Sender</Type>
    <Code>InvalidPoli (truncated...)
 InvalidPolicy (client): Unable to parse policy. - <ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
  <Error>
    <Type>Sender</Type>
    <Code>InvalidPolicy</Code>
    <Message>Unable to parse policy.</Message>
  </Error>
  <RequestId>a900a249-f032-11e5-85bd-77394342cf29</RequestId>
</ErrorResponse>
'

exception 'GuzzleHttp\Exception\ClientException' with message 'Client error: `POST https://email.us-west-2.amazonaws.com` resulted in a `400 Bad Request` response:
<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
  <Error>
    <Type>Sender</Type>
    <Code>InvalidPoli (truncated...)
' in in /var/www/html/bin/aws/Aws/WrappedHttpHandler.php on line 159

如果我手动添加域,它会按原样返回DKIM,但是如何以编程方式添加它?该文档听起来像该方法应该添加域进行验证然后返回它的DKIM记录?

1 个答案:

答案 0 :(得分:0)

使用verifyDomainIdentity()代替,使用相同的参数,然后发出第二个请求以获取DKIM数据。