科技爱好者博客

解决Piwik发送邮件出现“An error occured while sending ‘HTML Email Report – 3.2015-09-02.2.zh-cn.html’ to lxx19950227@163.com. Error was ‘Mail from must equal authorized user’”

Piwik是非常优秀的开源网站统计系统,可以用它来搭建可以媲美百度统计、Google Analytics等网站统计系统。我也搭建了一套网站统计系统,名字叫做科技爱好者统计,系统用起来非常好,有很多可以自定义的统计项,可以很方便的查看网站的访客。

但是搭建成功后,出现了无法发送邮件的现象,不管是用sendmail函数还是第三方SMTP服务器,都无法发送邮件。系统的报错信息是这样的:

An error occured while sending 'HTML Email Report - 3.2015-09-02.2.zh-cn.html' to lxx19950227@163.com. Error was 'Mail from must equal authorized user'

我在网上搜索了各种资料,都没有找到可以解决这个问题的办法。

既然网上没有解决方案,只好自己研究了。最后依靠自己的努力终于将问题解决了,成就感暴增。

首先查看系统报错信息,是“Mail from must equal authorized user”,查看smtp的报错代码,是这样解释的:

553 Mail from must equal authorized user
发信人地址必须是当前登录邮箱的认证用户地址

看到这儿我明白了,出现问题的原因应该是没有设置发件人地址或者发件人地址错误,即没有设置

from = “youyname@yourdomain.com”

既然是设置发件人地址出错了,那我们将发件人地址设置正确不就行了吗,但是看到设置选项里没有发件人地址这一项。

邮件服务器设置

然后我又去Piwik官方网站上搜索如何配置SMTP,然后搜到的结果和我配置的选项是一样的,看来问题不在这儿。

继续搜索,将搜索关键词改为“from”,果然,搜到了一篇文章,讲何如配置发送邮件时的发件人地址的,文章大体内容如下:

 

How do I change the default email address “From:” in PDF reports emails?

You can edit the default noreply@yourdomain.com email address that will appear in the PDF reports emails by editing the configuration file config/config.ini.php, and adding under the

[General]

section, the following line:

noreply_email_address = "info@example.org"

All reports by email will now be sent from “info@example.org”

终于找到了解决办法!

那就是找到网站根目录下的配置文件 config/config.ini.php 文件,打开将 noreply_email_address = "yourname@yourdomain.org" 修改为 "info@example.org" 。即

$ vim  config/cinfig.inc.php
将noreply_email_address = "yourname@yourdomain.org" 修改为 "info@example.org"
保存退出

然后进入科技爱好者统计后台,测试邮件发送,点击发送报表,提示“发送成功”!

好的,问题解决!

收到的报表邮件

退出移动版