解决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是非常优秀的开源网站统计系统,可以用它来搭建可以媲美百度统计、GooglAnalytic等网站统计系统。我也搭建了一套网站统计系统,名字叫做科技爱好者统计,系统用起来非常好,有很多可以自定义的统计项,可以很方便的查看网站的访客。但是搭建成功后,出现了无法发送邮件的现象,不管是用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 ema...
阅读全文

ubuntu 下 安装 JDK

  1、到 Sun 的官网下载选择 accept license ,然后选择适合自己机型的JDK下载。2、解压文件,修改文件名
$ sudo mkdir /usr/lib/jvm$ sudo tar zxvf jdk-7u21-linux-i586.tar.gz -C /usr/lib/jvm$ cd /usr/lib/jvm$ sudo mv jdk1.7.0_21 java
3、添加环境变量
$ sudo vim ~/.bashrc
加入如下内容
export JAVA_HOME=/usr/lib/jvm/javaexport JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH
4、配置默认JDK版本
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java/bin/java 300sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java/bin/javac 300sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java/bin/jar 300sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/java/bin/javah 300sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/java/bin/javap 300
然后执行
sudo update-alternatives --config java
若是初次安装 JDK, 将提示
There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java/bin/java无需配置。
若是非初次安装,将有不同版本的 JDK 选项。5、测试
$ java -versionjava version "1.7.0_21"Java(TM) SE Runtime Environment (build 1.7.0_21-b11)Java HotSpot(TM) Server VM (build 23.21-b01, mixed mode)
阅读全文