首页 / 邮件 / PHPMailer无法发送电子邮件
PHPMailer无法发送电子邮件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHPMailer无法发送电子邮件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2231字,纯文字阅读大概需要4分钟。
内容图文
![PHPMailer无法发送电子邮件](/upload/InfoBanner/zyjiaocheng/708/2bacbda810eb4092aa78a51446e7a2f7.jpg)
我的项目包含一个发送电子邮件的功能,即PHPMailer.它运行良好,从我的localhost服务器发送电子邮件,但它今天停止发送电子邮件,现在它显示此错误消息
SMTP Error: Could not connect to SMTP host.
我添加了此代码$mail-> SMTPDebug = 1;查看调试错误,现在显示此消息:
SMTP ERROR: Failed to connect to server: php_network_getaddresses: getaddrinfo failed: The requested name is valid, but no data of the requested type was found. (0) SMTP Error: Could not connect to SMTP host
我已经在php.ini中启用了extension = php_openssl.dll.
这是我的代码:
$mail = new PHPMailer();
$mail->SMTPSecure = 'ssl';
$mail->IsSMTP();
$mail->Username = "myemail@gmail.com"; // your GMail user name
$mail->Password = "password";
$mail->AddAddress($email); // recipients email
$mail->FromName = "username"; // readable name
$mail->IsHTML(true);
$mail->Subject = "title";
$mail->Body = " Message";
$mail->SMTPDebug = 1;
$mail->Host = "ssl://smtp.gmail.com"; // GMail
$mail->Port = 465;
$mail->IsSMTP(); // use SMTP
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->From = $mail->Username;
if($mail->Send()){
} else {
}
谢谢
解决方法:
这通常被报告为PHPMailer问题(并且这个问题有很多重复),但它几乎总是由于本地DNS故障,防火墙阻塞或本地网络上的其他网络问题.
首先,确保您使用的是latest PHPMailer.
不要在端口465上使用SSL,它是deprecated since 1998,仅供未获得备忘录的Microsoft产品使用;在端口587上使用TLS代替:
$mail->SMTPSecure = 'tls';
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
或者更简洁:
$mail->Host = 'tls://smtp.gmail.com:587';
您可以通过在服务器上运行某些命令来连接它(您将需要安装dnsutils和telnet软件包).首先检查DNS是否正常工作:
dig +short smtp.gmail.com
如果您的DNS工作正常,您将得到类似的内容:
gmail-smtp-msa.l.google.com.
173.194.67.108
173.194.67.109
接下来尝试telnet到您需要的端口上的主机:
telnet smtp.gmail.com 587
这应该给你这样的东西:
Trying 173.194.67.109...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP ex2sm16805587wjd.30 - gsmtp
(输入quit退出).
如果其中任何一个失败,PHPMailer也将无法正常工作.所以去修复你的网络,然后再试一次.如果您无法控制自己的防火墙或DNS,则可能需要向ISP提出支持请求以解决此问题.如果他们无法解决问题,则需要更换ISP.
回到PHPMailer,您可以通过设置获得关于连接的较低级别反馈:
$mail->SMTPDebug = 4;
内容总结
以上是互联网集市为您收集整理的PHPMailer无法发送电子邮件全部内容,希望文章能够帮你解决PHPMailer无法发送电子邮件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。