【问题标题】:Using AWS SES API使用 AWS SES API
【发布时间】:2017-06-09 17:42:33
【问题描述】:

我想访问AWS SES Webservice 以编程方式添加新的经过验证的电子邮件身份。 API reference 没有提供相关信息,或者至少我在那里找不到。

当我尝试访问 api 时,由于缺少签名而出现错误。

https://email.us-east-1.amazonaws.com?AWSAccessKeyId=EXAMPLEKeyId&Action=VerifyEmailIdentity&EmailAddress=someone@somewhere.org&Timestamp=2013-04-27T19:30:00Z&Version=2010-12-01&Signature=

我如何准确地创建这个签名,例如使用 php 的 hash_hmac()?

我是否需要使用 SES 密钥对整个参数进行哈希处理?

是否有比记录的版本 (2010-12-01) 更新的 SES API 版本?

【问题讨论】:

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


    【解决方案1】:

    您真的应该(再次)阅读文档。

    看看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' => 'the_mail_adress_to_verify@example.com'
    ));
    
    }
    catch( Exception $e )
    {
        echo $e->getMessage();
    }
    

    【讨论】:

    • 好的,谢谢。我不想使用 sdk,只遵循 api 文档。假设我不使用 sdk,因为我想使用的语言不存在它。我应该如何构建这些 api 调用?
    • 这很简单。基本上你只是authorize and sign your requests,当你这样做时,你将你的授权与VerifyEmailIdentity action结合起来——除了占用至少五倍以上的代码量之外,它应该非常简单。
    • 好奇...你想使用什么语言?有适用于 PHP、Ruby、Python、Java、.NET、Node.js、iOS 和 Android 的 SDK。您也可以利用 AWS CLI (github.com/aws/aws-cli)。
    • @JeremyLindblom 这个问题用 PHP 标记——可能是他想使用的语言。
    • 对,但他在第一条评论中提到 SDK“不存在我想要使用的语言”。只要确保他能找到合适的工具。已经对你的答案投了赞成票。
    猜你喜欢
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 2022-06-29
    • 1970-01-01
    • 2018-09-13
    • 2021-05-27
    • 1970-01-01
    相关资源
    最近更新 更多