Как настроить учетные данные для отправки электронной почты с помощью 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";
}
Я не могу найти, как правильно настроить учетные данные для отправки электронной почты.
3 answers
Да, формат файла конфигурации и конструкторы служб немного изменились в версии 1.5. Они упомянули об этом как о несовместимом изменении в примечаниях к выпуску.
Конструктор для 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
));
Пожалуйста, перейдите к источнику (или обратитесь к документам ), чтобы убедиться, что вам не нужно устанавливать другие параметры.
Значение 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);