opencart系统BUG系列2-关于SMTP系统【0722更新】

opencart有个很长久的问题,从1.5到3.0的系统代码一直那样写,其实如果那样,在后台配置邮件地址和SMTP的邮件地址同一个的时候,是不会有问题的。但是,很多人并不这样配置,而且就算这样配置也会引发另一个问题。当然我也讲讲环境问题。

提示fsockopen()

这个有两种提示,一种提示是函数禁用,一种是提示连接超时。具体提示语我不记得了,以前也没截图。我也懒得去模拟错误了。看提示语看不懂翻译下就可以。

函数禁用

如果是函数禁用,就要修改服务器环境的php.ini,记住,不是网站根目录的,是服务器环境的。如果是虚拟主机,申请主机商开函数,如果是VPS或者独立服务器就自己修改啦。

修改方法:http://www.sdtclass.com/2873.html

也可以利用 pfsockopen() 代替,我记得还有其他函数也可以代替,以后扩展这一个知识点的讲解。

连接超时

这个有两种,一个是PHP的连接超时,一个是端口问题。可以利用端口扫描工具测试 25 或者 465 等邮件端口是否开启,邮件配置选择正确的端口即可。

要注意的是,如果采用SSL的端口的话,SMTP服务器地址必须以 ssl:// 开头。比如:

SMTP服务器:ssl://smtp.qq.com

端口:465

关于打开端口的详细介绍后续补充。

php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution

关于这种情况的,则是服务器无法解析邮箱服务器的DNS问题,这个情况虽然非常罕见,但是在最近的一个客户身上发现了。

解决方法:服务器添加host记录,强制解析SMTP服务器域名到指定IP,这个IP可以本地电脑ping来测试,然后在服务器上修改host即可。如果是虚拟主机,需要联系主机商解决。实在不能解决的,换一个邮局或者邮箱,有的企业邮局也有多个SMTP地址,腾讯的我记得好像是有两个,一个适用于海外。

当然了,也不排除域名IP被防火墙拉黑了导致,所以也要检查防火墙之类的。

参考:http://blog.csdn.net/ownfire/article/details/7850890

Error: MAIL FROM not accepted from server!

这个提示,其实是作者留下的一个BUG。但是这个提示,也是考虑问题思路不同的问题。首先,导致这个的根源,就是SMTP账户 和 发件人 不是同一个导致。

设置解决

要么,把商店设置里的联系人邮件地址改为和SMTP地址一致【有缺陷】。

opencart系统BUG系列2-关于SMTP系统【0722更新】

比如我的SMTP邮件地址就是上面这个admin邮箱,我这里也这样设置,两个一样。就不会出现这个错误了。【商店设置里设置电话邮件里,如图】

代码解决

要么,修改代码,或者找我买插件。【无缺陷】

修改代码的话,改对应的处理邮件的地方,不是mail.php。当然也可以改那里,重新赋值也是可以的。这里以修改邮件触发器的地方为例子:

此处为隐藏的内容!
发表评论并通过审核后,才能查看

 

照这么看,设置就可以了,不用改代码了?但是我说设置有缺陷,就是因为,如果开启管理员通知,并且是linux的情况下,会导致另一个错误。下面讲解。

Error: RCPT TO not accepted from server!

这个错误是因为,收件人不能是自己,不能自己给自己发,但是在win下是可以的,linux下不可以,具体导致的原因我没有去详细研究,我只知道解决这个问题不用那么麻烦。只需要修改收件人地址即可。

如果通过上面改过代码,这个错误可以直接忽略(因为不会发生),但是“联系我们”页面也依然会有这个问题,详细可以参考文末的扩展文章,也可以联系我购买插件。

如果是设置的方法解决上面的问题,而且是linux,就会有这个问题,也可以通过设置解决。

设置解决

关闭注册用户通知和订单通知,OC旧版本在设置SMTP的下面开关,新版本在第四个TAB,也就是选项里面相关的地方有开关设置,关闭两个通知即可。

缺陷就是订单和新用户没通知邮件,要自己去后台看。而且其实“联系我们”页面依然有问题。

代码解决

其实如果上一步也是代码解决,那么这一步是不会出现的,除了“联系我们”页面之外。但是也有一个前提,这时候联系信息里的email地址必须和SMTP的邮箱地址不同(是不同)!!

Error: Password not accepted from server!

这个错误是邮件密码错误,请检测,用客户端尝试连接一次。这个密码和邮箱登陆密码不一定是同一个。而且如果是企业邮局有的设置后这个需要登陆一次修改后,用修改后的才能连接。比如腾讯企业邮局在设置的时候勾选了登陆修改密码的选项就会这样子。。

扩展阅读

函数开启:这里这里!!

联系我们页面解决:猛敲这里~~

代替函数:敬请期待~~

端口开启:敬请期待~~

腾讯企业邮局设置教程:敬请期待~~

 

 

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

目前评论:3   其中:访客  3   博主  0

  1. avatar unite 0

    我看看。。

  2. avatar oper 0

    还真没留意这个问题

  3. avatar mrcmf 0

    刚好遇到,看看怎么解决

评论加载中...

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

图片 表情