我使用PHPMailer并且很难让bluehost上的isSMTP工作。我已经能够让isMail工作了,我想知道发送邮件有什么区别。此外,我似乎在尝试使用isSMTP时遇到HELO或身份验证错误,但bluehost说我的设置是正确的。我使用SSL和端口465。
答案 0 :(得分:6)
isMail
和isSMTP
是设置PHPMailer Mailer
属性值的便捷方法。此属性确定PHPMailer在构建消息后如何发送消息。使用isMail
,使用PHP" mail
函数发送它。使用isSMTP
,它使用PHPMailer附带的SMTP
类作为SMTP客户端,直接与邮件服务器通信。
使用mail
功能要求您在本地计算机上安装并运行邮件服务器 - 至少在历史上,特别是Windows的情况并非如此。通常使用邮件功能相当快,因为它不需要与远程主机通信,但是,它实际上充当了系统自身sendmail
的前端,效率很低。 binary,它只是打开与localhost的同步SMTP连接。你也会得到更少的反馈 - mail
函数会返回布尔值,所以如果它没有工作,很难说它失败的原因,你可能需要看一下在你的邮件服务器的日志中查找。
您可以使用SMTP路由发送到本地或远程邮件服务器,通常SMTP到localhost是最快的发送方式。因为PHPMailer使用自己的SMTP客户端来执行此操作,这意味着它可以查看整个SMTP会话,从而在事情不起作用时得到更好的反馈 - 您可以设置SMTPDebug = 2
并查看整个会话。
有各种各样的问题可能出错,追查根本原因的最佳位置是阅读the PHPMailer troubleshooting guide。