西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > OpenCart教程 >

opencart联系表单邮件失败的解决办法

时间:2016-01-20 15:52来源:未知 作者:好模板 点击:
opencart的联系表单没有采用存储数据库,后台管理的方案,而是选择直接发送一封邮件到后台网店设置里填写的邮件。这样就需要配置好邮件参数,目前opencart支持PHP内置的mail() 函数 和

opencart 的联系表单没有采用存储数据库,后台管理的方案,而是选择直接发送一封邮件到后台网店设置里填写的邮件。这样就需要配置好邮件参数,目前opencart支持PHP内置的mail() 函数 和 免费SMTP服务器代发(PS:如163、qq、Gmail等等)。

opencart配置mail

opencart配置mail

选用mail()函数的方式虽然简单,但前提是需要服务器配置了sendmail 或是 postfix服务。 另一种SMTP代发方式方式显然要更直接和方便。

但是我在使用163免费邮箱的时候发现表单发送邮件后会返回错误:

553 Mail from must equal authorized user

 

这个错误来源是因为 网易服务器smtp机器要求身份验证帐号和发信帐号必须一致,如果用户在发送邮件时,身份验证帐号和发件人帐号是不同的,因此拒绝发送。

打开文件 /system/library/mail.php 文件:

查找代码:

if ($this->verp) {
    fputs($handle, 'MAIL FROM: <' . $this->from . '>XVERP' . "\r\n");
} else {
    fputs($handle, 'MAIL FROM: <' . $this->from . '>' . "\r\n");
}

改为:

if ($this->verp) {
    fputs($handle, 'MAIL FROM: <' . $this->smtp_username . '>XVERP' . "\r\n");
} else {
    fputs($handle, 'MAIL FROM: <' . $this->smtp_username . '>' . "\r\n");
}

这样是为了保证真实的发送地址和代发的SMTP邮箱地址一致,以通过验证。

(责任编辑:好模板)
顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容