opencart mail.php,opencart联系表单邮件失败的解决办法

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

eb41b61e649b6d19dd4d92e490f3b9ad.png

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: from . '>XVERP' . "\r\n");

} else {

fputs($handle, 'MAIL FROM: from . '>' . "\r\n");

}

改为:

if ($this->verp) {

fputs($handle, 'MAIL FROM: smtp_username . '>XVERP' . "\r\n");

} else {

fputs($handle, 'MAIL FROM: smtp_username . '>' . "\r\n");

}

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

(责任编辑:最模板)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值