当前位置: 首页 > 知识库问答 >
问题:

SES AWS错误代码: SignatureDoesNotMatch,状态代码: 403

濮阳振海
2023-03-14

我得到一个AWS错误代码:SignatureDoesNotMatch,状态代码:403时,试图通过亚马逊SES发送邮件。

我已经确认我正在使用通过https://console.aws.amazon.com/iam/home?#users创建的正确凭据,错误仍然存在。

我假设我在iam/home上创建的凭据实际上是全局的,但我不知道我进一步做错了什么。整个错误是:

AWS错误代码:SignatureDesNotMatch,状态代码:403,AWS请求ID:xxx,AWS错误类型:客户端,AWS错误消息:签名过期:20140314T031111Z现在早于20140317T15116Z(20140317T15111Z-5分钟),用户代理:AWS-sdk-php2/2.5。3大口/3.8。1/7.22。0 PHP/5.3。10-1ubuntu3。10在/url/Vendor/Aws/Common/Exception/NamespaceExceptionFactory中抛出。php在线91

实际代码是我提取的代码:http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Ses.SesClient.html#_sendEmail

我从本地环境中启动此脚本。

我在哪里可以找到有效的凭据?

共有2个答案

公良云
2023-03-14

除了这个解决方案,我还做了以下工作。

1) 我已在IAM中创建了具有PowerUser策略的用户。2) 更新了我的代码中的密钥/访问密钥。

现在它起作用了。

不确定SMTP凭据(在SES仪表板下创建)为何不工作。

东门奕
2023-03-14

这看起来像是时钟偏移问题。发送请求的机器的时间与Amazon SES服务器的时间相差太大。这导致您的签名无效。你的证件可能没问题。更正计算机时钟或与NTP服务器同步。

 类似资料:
  • 使用Alamofire 4/Swift 3,您如何区分由于以下原因而失败的请求: 网络连接(主机关闭,无法连接到主机)vs 代码: 我们希望以不同的方式处理每个案件。在后一种情况下,我们要询问回答。(在前一种情况下,我们不知道,因为没有回应)。

  • 我是不是漏掉了什么?我应该如何使用这些异步方法来处理这样的错误响应呢?

  • 错误代码 宏定义 #define  RT_EOK   0   无错误   #define  RT_ERROR   1   一般错误   #define  RT_ETIMEOUT   2   超时错误   #define  RT_EFULL   3   资源已满   #define  RT_EEMPTY   4   资源已空   #define  RT_ENOMEM   5   内存不足   #de

  • 代码- 即使db实例存在,它也会为某些调用抛出错误。错误详细信息- 你能告诉我我在这里缺了什么吗? 错误含义-

  • (spring)SecurityConfig.java LoginController.java

  • 问题内容: 我试图按照此链接中的建议将错误返回到对控制器的调用,以便客户端可以采取适当的措施。javascript通过jqueryAJAX调用控制器。仅在不将状态设置为error的情况下,我才可以重新获得Json对象。这是示例代码 如果没有设置状态码,我会得到Json。如果设置状态代码,则会返回状态代码,但不会返回Json错误对象。 更新 我想将Error对象作为JSON发送,以便可以处理ajax