{"id":1818,"date":"2023-03-28T22:34:31","date_gmt":"2023-03-28T14:34:31","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=1818"},"modified":"2024-01-23T22:13:44","modified_gmt":"2024-01-23T14:13:44","slug":"php-calls-aws-ses-service-to-send-email-message-403-forbidden-signaturedoesnotmatch","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/03\/28\/php-calls-aws-ses-service-to-send-email-message-403-forbidden-signaturedoesnotmatch\/","title":{"rendered":"PHP\u8c03\u7528AWS SES\u670d\u52a1\u53d1\u9001\u90ae\u4ef6\u62a5403 Forbidden SignatureDoesNotMatch"},"content":{"rendered":"<h2>\u9519\u8bef\u63cf\u8ff0<\/h2>\n<p>\u4f7f\u7528<code>sdk-for-php<\/code>\uff1a<a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/docs.aws.amazon.com\/zh_cn\/sdk-for-php\/v3\/developer-guide\/welcome.html\">https:\/\/docs.aws.amazon.com\/zh_cn\/sdk-for-php\/v3\/developer-guide\/welcome.html<\/a><\/p>\n<pre><code class=\"language-php\">$emailConfig     = [\n    &#039;key&#039;       =&gt; &#039;xxxxxx&#039;,\n    &#039;secret&#039;    =&gt; &#039;xxxxxx&#039;,\n    &#039;region&#039;    =&gt; &#039;us-east-1&#039;,\n    &#039;sender&#039;    =&gt; &#039;support@appblog.cn&#039;,\n];<\/code><\/pre>\n<p><!-- more --><\/p>\n<pre><code class=\"language-xml\">Error executing &quot;SendRawEmail&quot; on &quot;https:\/\/email.us-east-1.amazonaws.com&quot;; AWS HTTP error: Client error: `POST https:\/\/email.us-east-1.amazonaws.com` resulted in a `403 Forbidden` response:\n&lt;ErrorResponse xmlns=&quot;http:\/\/ses.amazonaws.com\/doc\/2010-12-01\/&quot;&gt;\n  &lt;Error&gt;\n    &lt;Type&gt;Sender&lt;\/Type&gt;\n    &lt;Code&gt;SignatureDo (truncated...)\n SignatureDoesNotMatch (client): The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.\n\nThe Canonical String for this request should have been\n&#039;POST\n\/\n\nhost:email.us-east-1.amazonaws.com\nx-amz-date:20210330T020743Z\n\nhost;x-amz-date\ne921dae6c46aa9c5db01b8aa68fefc10794c65c6612987d85d1c3482943b2eba&#039;\n\nThe String-to-Sign should have been\n&#039;AWS4-HMAC-SHA256\n20210330T020743Z\n20210330\/us-east-1\/ses\/aws4_request\n968b7b0686f381beefac6be2b39637cd5ed83071624c4a47f3d6a6bad89b5c1c&#039;\n - &lt;ErrorResponse xmlns=&quot;http:\/\/ses.amazonaws.com\/doc\/2010-12-01\/&quot;&gt;\n  &lt;Error&gt;\n    &lt;Type&gt;Sender&lt;\/Type&gt;\n    &lt;Code&gt;SignatureDoesNotMatch&lt;\/Code&gt;\n    &lt;Message&gt;The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.\n\nThe Canonical String for this request should have been\n&#039;POST\n\/\n\nhost:email.us-east-1.amazonaws.com\nx-amz-date:20210330T020743Z\n\nhost;x-amz-date\ne921dae6c46aa9c5db01b8aa68fefc10794c65c6612987d85d1c3482943b2eba&#039;\n\nThe String-to-Sign should have been\n&#039;AWS4-HMAC-SHA256\n20210330T020743Z\n20210330\/us-east-1\/ses\/aws4_request\n968b7b0686f381beefac6be2b39637cd5ed83071624c4a47f3d6a6bad89b5c1c&#039;\n&lt;\/Message&gt;\n  &lt;\/Error&gt;\n  &lt;RequestId&gt;f020662d-0b8d-432b-93af-0b649a0c2a21&lt;\/RequestId&gt;\n&lt;\/ErrorResponse&gt;<\/code><\/pre>\n<h2>\u89e3\u51b3\u65b9\u6cd5<\/h2>\n<p><div class=\"erphp-wppay payme payme-center\">\r\n                <div class=\"payme-toggle\">\r\n                <div id=\"wppay-payment-todo\" style=\"display: inline\">\r\n                  \u60a8\u9700\u8981\u5148\u652f\u4ed8 <b>0.2\u5143<\/b> \u624d\u80fd\u67e5\u770b\u6b64\u5904\u5185\u5bb9\uff01<br\/><br\/><a href=\"javascript:;\" class=\"erphp-wppay-loader btn btn-link\" data-post=\"1818\"><span style=\"color: white; \">\u7acb\u5373\u652f\u4ed8<\/span><\/a><br\/>\r\n                  <a id=\"wppay-query-link\" href=\"javascript:;\">\u5df2\u652f\u4ed8\uff1f\u70b9\u51fb\u8fd9\u91cc\u67e5\u8be2<\/a>\r\n                <\/div>\r\n\t\t\t\t<div id=\"wppay-payment-query\" style=\"display: none\">\r\n\t\t\t\t  <div id=\"wppay-query-form\">\r\n                    <input type=\"hidden\" name=\"post_id\" value=\"1818\">\r\n                    <input type=\"hidden\" name=\"post_title\" value=\"\">\r\n                    <input type=\"hidden\" name=\"post_url\" value=\"\">\r\n                    <input type=\"hidden\" name=\"post_price\" value=\"5.00\">\r\n                    <div>\r\n                        <label for=\"query_string\">\u5546\u5bb6\u8ba2\u5355\u53f7\/\u8ba2\u5355\u53f7\uff1a<\/label>\r\n                        <input type=\"text\" id=\"order_num\" name=\"order_num\" style=\"width:300px\" aria-required=\"true\" aria-invalid=\"true\" autofocus=\"\" placeholder=\"\u5546\u5bb6\u8ba2\u5355\u53f7\/\u8ba2\u5355\u53f7\">\r\n                        <button class=\"btn payme-btn\" name=\"button\" id=\"do-payment-query\"><span style=\"color: white; \">\u67e5 \u8be2<\/span><\/button>\r\n                    <\/div>\r\n                    <div>\r\n                        \uff08<a id=\"wppay-alipay-help-link\" href=\"javascript:;\">\u5982\u4f55\u67e5\u770b\u5546\u5bb6\u8ba2\u5355\u53f7\/\u8ba2\u5355\u53f7?<\/a>\uff09<br\/>\r\n                        <a id=\"wppay-pay-link\" href=\"javascript:;\">\u8fd4\u56de\u7ee7\u7eed\u652f\u4ed8<\/a><br\/>\r\n                        <div id=\"alipay-get-out-trade-no\" style=\"display: none;\">\r\n                          <br\/>\r\n                          <img decoding=\"async\" style=\"max-width: 100%\" src=\"\/wp-content\/uploads\/2024\/01\/get_alipay_out_trade_no.png\" alt=\"\"\/>\r\n                        <\/div>\r\n                    <\/div>\r\n                  <\/div>\r\n                <\/div>\r\n\t\t\t<\/div><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9519\u8bef\u63cf\u8ff0 \u4f7f\u7528sdk-for-php\uff1ahttps:\/\/docs.aws.amazon.com\/zh_cn\/sd [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,90],"tags":[400],"class_list":["post-1818","post","type-post","status-publish","format-standard","hentry","category-php","category-cloud-devops","tag-aws"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/1818","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=1818"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/1818\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=1818"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=1818"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=1818"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}