Search code examples
phpamazon-web-servicesinstallationprototypejs

Getting a 403 error while trying to setup AMAZON SES


I want to setup an asynchronous email service via amazon simple email service, but i've some big problems:

new Ajax.Request('https://email.us-east-1.amazonaws.com/?Action=SendEmail&Source=myemail@domain.com&Destination.ToAddresses.member.1=mydestination@domain.com&Message.Subject.Data=This%20is%20the%20subject%20line.&Message.Body.Text.Data=Hello.%20I%20hope%20you%20are%20having%20a%20good%20day.',
    {
   method: 'get',
   requestHeaders: {"Date": +res["result"]["date"],
                    "X-Amzn-Authorization":"AWS3-HTTPS",
                    "AWSAccessKeyId":"myaccesskey",
                    "SignatureMethod":"mysignature"
                    "Signature":+res["result"]["auth"]},

i have an 403 error so i'm wondering what's happened from amazon.

Date is gmdate('D, d M Y H:i:s e') and is correct. Signature come from hash_hmac('sha256', $date, 'exampleofsignature', false));

Could you help me please. I really appreciate that you post examples.


Solution

  • i finally bypassing the problem.

    Here's the code:

    $headers = array();
        $headers[]= "X-Amzn-Authorization: AWS3-HTTPS AWSAccessKeyId=XXXXXXXXXXXXXX, Algorithm=HmacSHA256, Signature=".$auth;
        $headers[]= "Date: ".$date;
        $curl = curl_init('https://email.us-east-1.amazonaws.com/?Action=SendEmail&Source=contact@enterprise.com&Destination.ToAddresses.member.1='.$contact['email'].'&Message.Subject.Data='.rawurlencode($subject).'&Message.Body.Text.Data='.rawurlencode($body));
          curl_setopt($curl, CURLOPT_USERAGENT, 'anUserAgent');
          curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
          curl_setopt($curl, CURLOPT_HEADER, false);
          curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
        if (curl_exec($curl)) {
          S('log')->debug(curl_getinfo($curl, CURLINFO_HTTP_CODE));
        } else {
          S('log')->debug(curl_error($curl));
        }
    

    ... i execute this code behind an javascript button action providing a form