的PHPMailer不能发送与EC2发送电子邮件
我使用PHPMailer的发送帐户验证邮件,我使用AWS EC2实例然而,邮件是在本地主机工作罚款,但是当我上传这对服务器电子邮件是不是第一次去, ,我用SendGrid凭证发送电子邮件,失败,再尝试Gmail的SMTP,失败的地方,我读了EC2不能发送电子邮件,然后,我创建SES也,还不能发送。的PHPMailer不能发送与EC2发送电子邮件
在网上搜索,ABT上,但没有答案在本地主机固定我的问题,
,在可以发送电子邮件使用相同的代码,并与SendGrid的Gmail凭证,为什么我不能发送与服务器?
我的PHP邮件代码:
$sub = "Thankyou For registration! Confirm Your mail to Login";
$mailBody = "<h1>You are successfully registered<br />Visit site to login</h1>";
require 'mailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = "tls://email-smtp.us-east-1.amazonaws.com"; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = "smtp_username"; // SMTP username
$mail->Password = "smtp_password"; // SMTP password
// $mail->SMTPSecure = 'ssl'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 465; // TCP port to connect to
$mail->setFrom("[email protected]", "SMTP_REPLAY_NAME");
$mail->addReplyTo("[email protected]", "SMTP_REPLAY_NAME");
$mail->addAddress("[email protected]"); // Add a recipient
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = $sub;
$mail->Body = $mailBody;
if(!$mail->send()) {
echo 'Message could not be sent.';
} else {
echo 'Message has been sent';
}
它显示消息已发送,但我不能接收电子邮件,在邮件夹也查了,没有邮件的线索!
即使我也有openSSL证书!打开SMTP端口的入站和出站安全组 ec2,一切工作正常,但PHPMailer!
直接获取您的协议。在Host
中,您指定的是tls
,但要求它连接到Port = 465
,这对TLS无效。请将Port
更改为587
(首选)或将您的加密方法更改为ssl
。启用调试输出(SMTPDebug = 2
)可以让您了解与服务器的对话中发生的事情。
仔细阅读the troubleshooting guide可能会有所帮助。
我试着用SSL和TLS端口465和587.正如我说的邮件发送和我收到这些邮件时,在本地主机 –
使用m再次改变这些设置,但消息显示成功,但邮件我不能接受! –
那么调试输出说什么?将其添加到您的问题。 – Synchro
AWS当前遇到服务中断:https://status.aws.amazon.com/ –
现在亚洲地区服务器已启动,并且我正在使用SendGrid作为SMPT(现在),而不是S3 –
谢谢我做过调试和找到答案[这里](https://gistpages.com/posts/phpmailer_smtp_error_failed_to_connect_to_server_permission_denied_13_fix) –