使用Amazon AWS SES发送电子邮件

时间:2018-02-08 11:31:49

标签: php amazon-web-services phpmailer amazon-ses

我已经配置了aws的ses服务但是无法使用它。我的电子邮件正在发送,但它们是通过我的托管服务器(Godaddy)发送的,我希望只通过AWS的SES发送它们。请原谅我,如果我犯了一个新手的错误。

这是我的代码的样子

<?php
require 'PHPMailerAutoload.php';
require 'class.phpmailer.php';
$mail = new PHPMailer;
$mail->SMTPDebug = 2;
$mail->Host = 'email-smtp.eu-west-1.amazonaws.com';
$mail->Port = 25;
$mail->ssl = true;
$mail->authentication = true;
$mail->Username = 'username';
$mail->Password = 'password';
$mail->setFrom('vaibhav@zigsaw.in', 'Test Email');
$mail->Body = 'Test Email from Zigsaw';
$mail->AddReplyTo('zigsawconsultancy@gmail.com', 'Candidate');
$mail->addAddress('zigsawconsultancy@gmail.com', 'Recruiter');
$mail->Subject = 'Test Email from Zigsaw';
if(!$mail->send()) 
{
echo "Email not sent. " , $mail->ErrorInfo , PHP_EOL;
} 
else 
{
echo "Email sent!" , PHP_EOL;
}
?>

免责声明:我的文件托管在godaddy服务器上,我正在尝试通过AWS SES发送电子邮件。

1 个答案:

答案 0 :(得分:1)

GoDaddy阻止出站SMTP,但你没有告诉PHPMailer使用SMTP(所以你的大多数设置什么也不做),所以它通过mail()函数提交,使用本地邮件服务器,在GoDaddy的情况下是他们的服务器 - 这就是为什么它会这样。不幸的是,没有办法在GoDaddy上使用外部SMTP,虽然你可以通过他们的secureserver.net中继发送 - 但这当然意味着你不能使用你的个人域发送,因为它是伪造的,你的邮件将是垃圾邮件 - 过滤或反弹。

如果你打电话:

$mail->isSMTP();

PHPMailer将使用SMTP和您的其他设置,但正如我在评论中所说,您刚刚发明了一些不起作用的东西,因此根据提供的示例重写您的代码,尽管这不起作用在GoDaddy上。

如果SES有HTTP API,那么您可以使用它,因为它不会受到GoDaddy的阻止。