Amazon SES PHPMail 或 SDK

Amazon SES PHPMail or SDK

我已经在 Amazon SES 服务中注册了电子邮件限制设置并且脱离了沙盒。我已经尝试了很多 PHPMailer 函数,但所有 return 都是错误:连接超时 (110)。 PHPMailer可以发邮件吗?

我在 Amazon SES 网站上看到了这个 link

<?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 sender@example.com with your "From" address. 
// This address must be verified with Amazon SES.
define('SENDER', 'sender@example.com');           

// Replace recipient@example.com with a "To" address. If your account 
// is still in the sandbox, this address must be verified.
define('RECIPIENT', 'recipient@example.com');    

// 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");
}

?>

我已经复制了所有的代码,把我的变量放在演示脚本中而不是显示的。现在我收到错误消息:You must use KEY ans SECRET_KEY to use this script...我不能把我的 KEY 和 SECRETKEY 放在脚本中的什么地方?没有关于如何做到这一点的解释。

还有其他方法可以通过 Amazon SES 服务发送电子邮件吗? 谢谢!

据我所知,PHP Mailer 在 API 之前没有使用 AWS SES,您应该将 SES SMTP 与 PHP Mailer 一起使用。

正确的端口是 25、465 或 587。

就这么简单。我必须在 :

中添加密钥和密码
$client = SesClient::factory(array(
    'version'=> 'latest',     
    'region' => REGION,
     'credentials' => array(
        'key'    => 'XXXXXXXXXXXXXXXX',
        'secret' => 'XXXXXXXXXXXXXXXX',
    )
));

并在亚马逊安全凭证中设置 XXXXXXXXXXXXXXXX 对 api 的完全访问权限