Amazon SES PHPMail или пакет SDK
Я зарегистрировался в сервисе Amazon SES с настройкой лимита электронной почты и вышел из песочницы. Я перепробовал много функций PHPMailer, и все они возвращают меня как ошибку: Время ожидания соединения (110). Возможно ли отправлять почту с PHPMailer?
Я видел на сайте Amazon SES эту ссылку.
<?php
// Replace path_to_sdk_inclusion with the path to the SDK as described in
// http://docs.aws.amazon.com/aws-sdk-php/v2/guide/quick-start.html
define('REQUIRED_FILE','path_to_sdk_inclusion');
// Replace [email protected] with your "From" address.
// This address must be verified with Amazon SES.
define('SENDER', '[email protected]');
// Replace [email protected] with a "To" address. If your account
// is still in the sandbox, this address must be verified.
define('RECIPIENT', '[email protected]');
// Replace us-west-2 with the AWS region you're using for Amazon SES.
define('REGION','us-west-2');
define('SUBJECT','Amazon SES test (AWS SDK for PHP)');
define('BODY','This email was sent with Amazon SES using the AWS SDK for PHP.');
require REQUIRED_FILE;
use Aws\Ses\SesClient;
$client = SesClient::factory(array(
'version'=> 'latest',
'region' => REGION
));
$request = array();
$request['Source'] = SENDER;
$request['Destination']['ToAddresses'] = array(RECIPIENT);
$request['Message']['Subject']['Data'] = SUBJECT;
$request['Message']['Body']['Text']['Data'] = BODY;
try {
$result = $client->sendEmail($request);
$messageId = $result->get('MessageId');
echo("Email sent! Message ID: $messageId"."\n");
} catch (Exception $e) {
echo("The email was not sent. Error message: ");
echo($e->getMessage()."\n");
}
?>
Я скопировал все коды, поместил свою переменную вместо показанной в демонстрационном скрипте. Теперь я получаю ошибку: вы должны использовать ключ и СЕКРЕТНЫЙ ключ, чтобы использовать этот скрипт... Куда я не могу положить свой КЛЮЧ и СЕКРЕТНЫЙ КЛЮЧ в сценарии? Нет никаких объяснений, как это сделать.
Есть ли другой способ отправки электронной почты через сервис Amazon SES? Спасибо!
2 answers
Насколько я знаю, PHP Mailer не работал с AWS SES по API, вы должны использовать SES SMTP с PHP Mailer.
Правильные порты - 25, 465 или 587.
Так просто. Я должен добавить ключ и секрет в:
$client = SesClient::factory(array(
'version'=> 'latest',
'region' => REGION,
'credentials' => array(
'key' => 'XXXXXXXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXXXX',
)
));
И установите XXXXXXXXXXXXXXXX полный доступ к api в учетных данных безопасности amazon