来自PHPMailer的SMTP电子邮件不工作,现在已迁移到AWS
我有一个以前在Godaddy上托管的大型软件,我使用以下代码向客户发送预约确认:来自PHPMailer的SMTP电子邮件不工作,现在已迁移到AWS,php,amazon-web-services,email,phpmailer,Php,Amazon Web Services,Email,Phpmailer,我有一个以前在Godaddy上托管的大型软件,我使用以下代码向客户发送预约确认: if ($systemToken == $token) { if ($permission) { //if the user is an admin. require 'PHPMailer-master/PHPMailerAutoload.php'; $mail = new PHPMailer;
if ($systemToken == $token) {
if ($permission) { //if the user is an admin.
require 'PHPMailer-master/PHPMailerAutoload.php';
$mail = new PHPMailer;
//$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'localhost';
$mail->SMTPAuth = false;
$mail->SMTPAutoTLS = false;
$mail->Port = 25;
if($branding == 1 || $branding == '1'){
$new_username = 'info@XXX1.co.uk';
$new_password = 'X';
}
else
{
$new_username = 'info@XXX2.co.uk';
$new_password = 'X';
}
$mail->Username = $new_username; // SMTP username
$mail->Password = $new_password; // SMTP password
$mail->setFrom('info@XX.co.uk', 'Your Invoice');
$mail->addAddress($sendto); // Add a recipient
$mail->addAttachment($pdf); // Add attachments
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = $subject;
$mail->Body = "<html><body><p>Hi " . $fname . ",</p><p>We are pleased to confirm your appointment on " . $app . ".</p>
<p>Please reply to this email if you need to re-arrange your appointment, or have any questions or queries.</p>
</body></html>";
$mail->AltBody = '';
if (!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo '{"text":"Email sent to ' . $sendto . '"}';
}
} else {
echo '{"error":{"text":"Invalid Permissions"}}';
}
} else {
echo '{"error":{"text":"No access"}}';
}
if($systemToken==$token){
如果($permission){//如果用户是管理员。
需要“PHPMailer master/phpmailerautoad.php”;
$mail=新的PHPMailer;
//$mail->SMTPDebug=3;//启用详细调试输出
$mail->isSMTP();//设置邮件程序以使用SMTP
$mail->Host='localhost';
$mail->SMTPAuth=false;
$mail->SMTPAutoTLS=false;
$mail->Port=25;
如果($branding==1 | |$branding==1'){
$new\u用户名=info@XXX1.co.uk';
$new_password='X';
}
其他的
{
$new\u用户名=info@XXX2.co.uk';
$new_password='X';
}
$mail->Username=$new\u Username;//SMTP用户名
$mail->Password=$new\u Password;//SMTP密码
$mail->setFrom('info@XX.co.uk“,”您的发票“);
$mail->addAddress($sendto);//添加收件人
$mail->addAttachment($pdf);//添加附件
$mail->isHTML(true);//将电子邮件格式设置为HTML
$mail->Subject=$Subject;
$mail->Body=“Hi”。$fname.”,我们很高兴确认您在“$app”上的约会
如果您需要重新安排约会,或有任何问题或疑问,请回复此电子邮件
";
$mail->AltBody='';
如果(!$mail->send()){
echo“无法发送消息”;
回显“邮件错误:”。$mail->ErrorInfo;
}否则{
回显“{”文本“:“电子邮件发送到“.$sendto.”“}”;
}
}否则{
回显“{”错误“:{”文本“:“无效权限”}}”;
}
}否则{
回显“{”错误“:{”文本“:“无访问权”}”;
}
由于流量激增,我已经切换到amazon web services专用服务器,我需要安装或更改什么才能像在Godaddy上一样发送电子邮件?我知道localhost需要更改,但我不确定什么是最好的选择?我可以使用任何托管软件包设置吗?或者还有其他设置吗?首先,您使用的是旧版本的PHPMailer,因此我建议您进行更新,并查看如何使用composer AWS不是共享主机,因此不提供邮件服务器,但您可以非常轻松地安装自己的邮件服务器。您通常只需安装postfix,并选择其“internet站点”选项,即可使用现有脚本 但是,您将遇到AWS的问题;他们不喜欢你发送电子邮件,所以你经常会发现出站SMTP被阻止。解决这一问题的唯一真正方法是为他们的SES邮件服务付费