如何从Amazon SES检索响应?

时间:2014-05-23 13:21:50

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

我有用于验证Amazon ses

中的电子邮件地址的代码
<?php
$sesClient = SesClient::factory(array(
            'key'    => 'secret key',
            'secret' => 'secret',
            'profile' => 'user_name',
            'region'  => 'us-east-1'
        ));
$result = $sesClient->verifyEmailAddress(array('EmailAddress'=> $email));
?>

$ result的结果是这样的:

object(Guzzle\Service\Resource\Model) {
    [protected] structure => null
    [protected] data => array()
}

我确实在我指定的电子邮件ID中收到了经过验证的电子邮件。我的问题是,如何使用我收到的回复检查功能是否正常工作?在早期的Amazon Web服务中,他们使用$result->is('Ok')来验证结果。我现在应该使用什么功能来检查该功能成功与失败的结果?

我已经使用amazon link进行了检查,但仍无法找到成功回复的功能

2 个答案:

答案 0 :(得分:2)

我认为你需要使用verifyEmailIdentity 而不是 verifyEmailAddress

$result = $sesClient->verifyEmailIdentity(array('EmailAddress'=> $email));

如AWS文档中所述:

  

自5月起,不推荐使用VerifyEmailAddress操作   15,2012年域名验证发布。 VerifyEmailIdentity   行动现在是首选。

Further Reading

答案 1 :(得分:2)

看看aws-sdk-php的测试发现了这个:

https://github.com/aws/aws-sdk-php/blob/master/tests/Aws/Tests/Ses/Integration/IntegrationTest.php#L86

也许你可以试试:

$sesClient->verifyEmailAddress(array('EmailAddress'=> $email));
$sesClient->waitUntilIdentityExists(array('Identities' => array($email)));
$result = $sesClient->getIdentityVerificationAttributes(array('Identities' => array($email)));
if ('Success' === $result->getPath("VerificationAttributes/{$email}/VerificationStatus"))