Как настроить учетные данные для отправки электронной почты с помощью Amazon с помощью PHP SDK от aws


Я пытаюсь использовать последнюю версию SDK для PHP (версия 1.5.0). Я пытаюсь отправить электронное письмо с амазонками. Я успешно отправил электронные письма со сценариями python, поэтому я знаю, что мои возможности и другие настройки в порядке.

Я скопировал пример кода, однако он не работает. При вызове Амазонок я получаю сообщение об ошибке:

Catchable fatal error: Argument 1 passed to AmazonSES::__construct() must 
be an array, string given, called in sendemail.php on line 31 and 
defined in sdk-1.5.0/services/ses.class.php on line 67

Это код:

        $AWS_KEY = "AKIEDIEDEIMIAXEOA";
        $AWS_SECRET_KEY = "Te+EDEwjndjndededededededj";

        require_once("../library/lib_aws/sdk-1.5.0/sdk.class.php");

        $amazonSes = new AmazonSES($AWS_KEY, $AWS_SECRET_KEY);

        $response = $amazonSes->send_email( 
                    "[email protected]",
                    array("ToAddresses" => "[email protected]"),
                    array(
                        "Subject.Data" => "test",
                        "Body.Text.Data" => "body test",
                        )
                    );

        if (!$response->isOK())
        {
            echo "error";
        }

Я не могу найти, как правильно настроить учетные данные для отправки электронной почты.

Author: Alexandre H. Tremblay, 2011-12-21

3 answers

Да, формат файла конфигурации и конструкторы служб немного изменились в версии 1.5. Они упомянули об этом как о несовместимом изменении в примечаниях к выпуску.

Http://aws.amazon.com/releasenotes/PHP/3719565440874916

 2
Author: Skyler Johnson, 2011-12-21 21:05:25

Конструктор для AmazonSES принимает массив с параметрами. Проверьте источник:

Https://github.com/amazonwebservices/aws-sdk-for-php/blob/master/services/ses.class.php#L55

Вы захотите написать это так:

$amazonSes = new AmazonSES(array(
    "key" => $AWS_KEY,
    "secret" => $AWS_SECRET_KEY
));

Пожалуйста, перейдите к источнику (или обратитесь к документам ), чтобы убедиться, что вам не нужно устанавливать другие параметры.

 8
Author: evan, 2011-12-20 23:10:08

Значение TOADDRESS должно быть массивом, а не строкой. Это должно сработать:

require_once('amazonsdk/sdk.class.php');

$ses = new AmazonSES(); 

$response = $ses->send_email(
    "[email protected]",
    array("ToAddresses"=>array('[email protected]')), 
    array("Subject.Data"=>"Testing SES subject","Body.Text.Data"=>"Testing SES body.")
);

print_r($response);
 -2
Author: Brian Ephraim, 2012-08-07 16:01:34