Как установить учетные данные для отправки электронной почты с AmazonSES с помощью PHP SDK от aws - PullRequest
3 голосов
/ 21 декабря 2011

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

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

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( 
                    "from@email.com",
                    array("ToAddresses" => "to@email.com"),
                    array(
                        "Subject.Data" => "test",
                        "Body.Text.Data" => "body test",
                        )
                    );

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

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

Ответы [ 3 ]

8 голосов
/ 21 декабря 2011

Конструктор для 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
));

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

2 голосов
/ 22 декабря 2011

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

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

0 голосов
/ 07 августа 2012

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

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

$ses = new AmazonSES(); 

$response = $ses->send_email(
    "senderaddress@example.com",
    array("ToAddresses"=>array('receiveraddress@example.com')), 
    array("Subject.Data"=>"Testing SES subject","Body.Text.Data"=>"Testing SES body.")
);

print_r($response);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...