我有一个网站,我已将其中一个页面编程为连接到SMTP以向客户发送电子邮件。当我将文件上传到主机时会出现此问题,然后它无法连接并向我显示错误SMTP Error: Connection timed out
。
在localhost上,代码工作正常并在实例中成功连接。是否需要在代码或主机设置中更改以使其正常工作?
使用PHPMailer,这些是我的连接变量(不包括主题,正文等):
$mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->AuthType = 'LOGIN';
$mail->Username = 'email@gmail.com'; // SMTP username
$mail->Password = 'mypassword'; // SMTP password
$mail->SMTPSecure = 'ssl'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 465; // TCP port to connect to
$mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false ) );
答案 0 :(得分:0)
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
答案 1 :(得分:0)
当我将文件上传到主机
时,问题就开始了
为什么您认为上传影响邮件服务器连接的文件?
$ mail-> SMTPOptions = array('ssl'=> array('verify_peer'=> false));
这不是一个好主意。
我是否需要在代码或主机设置中更改以使其正常工作?
如果您在代码,主机设置或主机所在的网络基础设施中更改了某些内容,那么它可能会开始工作(请参阅注释1)但是因为您只告诉我们(部分)代码,我们猜不出那可能是什么。
对于面向互联网的主机来说,它的功能受到限制并不少见 - 这可能会受到路由,防火墙,DNS可用性等因素的限制。权限。这些是您应该检查的事项(或与管理主持人的人交谈)。注意1:为了以后读者的利益 - 您可能还需要在邮件服务器上更改某些 - 但如果代码在运行时的行为符合预期,则可能不适用不同的主持人)
答案 2 :(得分:0)
您遇到Connection timeout
问题。这很可能是因为您的配置出了问题,导致代码无法与google smtp服务器连接。
首先确保您使用的是最新版本的PHPMailer。进一步研究有问题的代码
请按照以下更新调试并解决问题
$mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication;
$mail->Username = 'email@gmail.com'; // SMTP username
$mail->Password = 'mypassword'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to`
<德尔>
`$ mail-&gt; AuthType =&#39;登录&#39;
$ mail-&gt; SMTPOptions = array(&#39; ssl&#39; =&gt;数组(&#39; verify_peer&#39; =&gt; false));`
如果您尝试使用已编辑的代码块,我相信您应该得到肯定的结果。
为了进一步明确这一点,您可能希望查看他们(PHPMailer&#39; s)的实际文档connect with Google SMTP
希望,这有帮助!