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"
保存退出
然后进入科技爱好者统计后台,测试邮件发送,点击发送报表,提示“发送成功”!
好的,问题解决!