使用AWS SES API
问题描述:
我想访问AWS SES Webservice以编程方式添加新的经过验证的电子邮件标识。 API reference不提供相关信息,或者至少我不能在那里找到它。使用AWS SES API
当我尝试访问API时,由于缺少签名而出现错误。
https://email.us-east-1.amazonaws.com?AWSAccessKeyId=EXAMPLEKeyId&Action=VerifyEmailIdentity&[email protected]&Timestamp=2013-04-27T19:30:00Z&Version=2010-12-01&Signature=
如何准确地创建此签名,例如使用php的hash_hmac()?
我是否需要使用SES密钥哈希整个参数?
SES API是否有较新的版本(2010-12-01)?
答
你应该仔细阅读文档(再次)。
看看AWS PHP SDK这会帮助你很多。
示例实现会是这样的:
<?php
require 'aws.phar';
use Aws\Common\Enum\Region;
use Aws\Ses\SesClient;
try {
$ses = SesClient::factory(array(
'key' => 'YOUR_KEY',
'secret' => 'YOUR_SECRET',
'region' => Region::US_EAST_1
));
$ses->verifyEmailIdentity(array(
'EmailAddress' => '[email protected]'
));
}
catch(Exception $e)
{
echo $e->getMessage();
}
好了,谢谢你。我不想使用sdk,只是遵循api文档。假设我不使用sdk,因为它不适用于我想要使用的语言。我应该如何构建这些API调用? – pauel 2013-04-28 04:42:34
这很容易。基本上你只是[授权并签署你的请求](http://docs.aws.amazon.com/ses/latest/DeveloperGuide/query-interface-authentication.html),当你这样做时,你将授权与[VerifyEmailIdentity action](http://docs.aws.amazon.com/ses/latest/APIReference/API_VerifyEmailIdentity.html) - 除了占用至少5倍以上的代码量外,它应该非常简单。 – Repox 2013-04-28 09:28:25
好奇......你想用什么语言?有针对PHP,Ruby,Python,Java,.NET,Node.js,iOS和Android的SDK。您也可以利用AWS CLI(https://github.com/aws/aws-cli)。 – 2013-04-29 16:43:12