配置wordpress的邮件发送功能

青蛙继续倒腾vps,今天的主题是调教wordpress发送邮件。

之前在Dreamhost上面,邮件系统已经配置好了,wordpress不需要任何设置就可以直接发送邮件。 到了vps上之后,青蛙为了节省资源,没有安装邮件服务器,所以想要发送邮件,还需要自己折腾。

青蛙首先是想到了配置一个轻量级的MTA,例如msmtp之类的, 然后修改php.ini的sendmail_path参数,使它指向msmtp。 这样php程序就具有邮件发送能力了,但是这样产生的问题就是邮件的发送服务器是固定的, 而且需要配置一个帐号来做登录服务器,如果某个用户希望使用自己的服务器发送某些邮件, 这样配置就无法实现了。

为了实现完美的解决方案,青蛙又搜了一圈,发现了wordpress已经集成了一个PHPMailer[1]类, 并且提供了一个wp_mail函数[2]来发送邮件, 有很多设置SMTP的插件[3]方便我们配置SMTP服务器和外发邮件帐号信息。

青蛙选择了WP Mail SMTP插件,非常简单,把所有参数填好,wordpress就可以发送邮件了。

参考资料:

[1] PHPMailer http://phpmailer.worxware.com/

[2] Function Reference/wp_mail http://codex …

more ...

为https服务申请SSL证书

书接上文,上回书说到青蛙成功给nginx配置上了https服务, 但是当时青蛙使用的是自签名证书,没有验证网站身份的功能; 而且有些工具会对证书的有效性进行校验,对于这种工具,自签名证书就毫无用处了。

这个时候,就需要申请一个经过CA认证的有效证书。

据青蛙所知,目前提供免费SSL证书的只有StartSSL[1]一家, 青蛙按照这两个网站的介绍[2][3],成功申请了SSL证书。

依照青蛙的经验,要成功申请证书,最好是有一个以要申请域名结尾的邮箱, 这样可以很容易的确认域名所有权。至于邮箱服务,可以申请google app,方便,免费。

有了邮箱系统之后,可以设置一个webmaster或者hostmaster账户,以便注册过程中验证域名地址。

在StartSSL申请证书的时候有几点需要注意:

首先,建议使用firefox申请证书,青蛙用Chromium试了一下, 点击进入Sign-up界面的时候会出现一个错误提示,明确说明Chrome类浏览器无法申请。 有网友说IE也没法成功申请[1]。

其次,申请的时候尽量填写靠谱的个人信息, 如果信息看起来不靠谱,很容易被拒掉。 个人信息填写完之后会向你填写的邮箱里发送一封认证邮件,邮件中包含继续注册所需的验证码。 输入验证码之后提示等待人工审核,青蛙遇到的审核过程很快,大概几分钟就有结果了。

接下来还有一封邮件,里面有一个链接和一个认证码,访问那个连接,填上认证码 …

more ...

在NGINX上开启https

青蛙的新VPS是基于nginx的,仅仅是因为传言nginx在小内存,大压力的时候表现好一些。

当然,为了获得这点好处,还是要付出一些代价的。 例如nginx没有apache的htaccess,对每个目录的控制都需要写到nginx的配置文件中, 这样对普通用户来说十分的不方便。

哦,有点跑题,继续说https的问题,其实给nginx配置https也不复杂, 按照网上现成的模板,改一下自己的域名和目录位置就好了。

下面是一个完整的示例[1][2]:(来自这里

upstream test.com {
    server 192.168.1.2:80;
}

server {
    server_name test.com;
    include port.conf;

    ssl on;
    ssl_certificate server.crt; # ${nginx_install_dir}/conf/server.crt
    ssl_certificate_key server.key; # ${nginx_install_dir}/conf …
more ...