Я пытаюсь добавить домен для проверки в свою учетную запись Amazon SES из PHP. Я попытался использовать следующий код:
$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?
Вместо этого используйте verifyDomainIdentity () с теми же параметрами, а затем сделайте второй запрос для получения данных DKIM.
Других решений пока нет …