不得不说opencart的邮箱配置是门技术活。
官方教程:http://www.opencart.cn/thread-10179-1-1.html
官方教程指导的还是比较简单的,据说如果主机服务商自带了邮箱系统的话直接使用mail就不用做其他配置了。可惜我的主机服务商提供的邮箱系统试用下感觉并不是很稳定,于是本机环境下使用smtp进行邮箱配置的调试。
smtp配置也比较简单。进入opencart管理后台>>网店设置里。先在商店设置中设置网站邮箱,再进行邮箱协议设置。
邮箱协议设置中先把邮箱协议改成smtp,再填写smtp主机、smtp用户、smtp密码、smtp端口、smtp超时。
一开始并不知道支持ssl模式的第三方邮箱可以使用非ssl模式,总在排查是否哪里的设置出了差错。接着才发现是本机环境不支持ssl模式,去掉了smtp地址前的“ssl://”,并改用普通模式25端口。调试成功。
于是照搬本机配置到主机环境下。
结果配置是没问题,邮件也能通过后台成功发送给指定用户。但是前台注册用户完成后必会有如下报错。
Notice: Error: RCPT TO not accepted from server!
同时网站邮箱无法接到自己发送给自己的邮件通知,该问题问过万能的度娘之后,只搜到了寥寥几个解决方法。
1、说是网站邮箱配置和邮件协议配置中的邮箱不同所致。
再次检查过两处邮箱配置,并不存在该问题。由于本机环境邮箱配置的教程就有说明两处邮箱必须相同,所以一开始笔者就特别留意过两处的配置。
2、说是opencart本身的程序限制,且由于搭建opencart的主机服务商防邮件骚扰策略,导致不支持自己邮箱对自己邮箱发送邮件。需要通过改写源码或者使用vqmod的方式处理。详见:
http://redmarlin.net/blog/post/opencart-fixing-notice-error-rcpt-not-accepted-server-tutorial
在笔者看来改写源码风险还是比较大的,毕竟这种成熟的开源程序都会定期升级优化。若是改写源码解决后,每次升级可能都需要再重新调试该问题。况且笔者不是开发出身,虽然懂一些源码的基本原理与逻辑。这样的工作量压力还是有些大。
所以选择了vqmod的方式进行调试。一开始当然是本机调试,可是不知道是遗漏了什么步骤或是其他问题,连本机调试迟迟都未成功。显然不能采纳了。
无奈之下再次逐一排查主机配置。发现虽然没用主机服务商的邮箱系统,但是仍然激活了该邮箱系统。
不管三七二十一,先把主机服务商的邮箱系统关闭了。接着把smtp配置了ssl模式,在smtp地址前加了“ssl://”,端口改成465。保存,成功。
以上方法,亲测有效。但实际主机环境可能都不一样,也是仅供参考,作为一条处理该类问题的一条思路。