阿里云还真大方,可以免费申请到2年的虚拟主机。在这之前用过美国服务器但是慢,后来又转到新网(为此我一定要吐槽一下新网,能把虚拟机做到比美国服务器访问还慢还算服了,就搭一个WP;客服在回调时直接让我换个高档的空间,滚犊子,新网永远进入我的黑名单)。

当然我们还是回归主题,阿里云的虚拟空间非常不错,访问也很快。而唯一的问题在发送邮箱这件事上很是保守,唯一能发送成功的只能是SMTP+fsockopen。如果你想完整的解决点评审核邮件通知、评论回复邮件通知评论人的话,那么你必须做几下几件事。

1、开启阿里云fsockopen

进入【主机管理平台】-【高级环境设置】-【PHP.INI设置】。

2、安装Configure SMTP插件

这一步可以帮助我们在WP里当采用SMTP发送邮件时所采用的SMTP设置信息,否则!@#¥%……&*()我也不知道怎么修改代码才能指定SMTP;总之,必须安装它。

3、强制WP采用fsockopen来创建smtp连接

修改 /wp-includes/class-smtp.php 里头的(按最新版本WP大概在276行)

$this->smtp_conn = @stream_socket_client(
    $host . ":" . $port,
    $errno,
    $errstr,
    $timeout,
    STREAM_CLIENT_CONNECT,
    $socket_context
);

$this->smtp_conn = @fsockopen($host,$port,$errno,$errstr,$timeout);

当升级WP版本时,这个步骤还得再做一遍,反正我是没招,升级WP版本时注意一下吧。

4、评论回复邮件通知评论人

我的BLOG主题是自己开发的,如果你采用的主题未实现该功能的话;那么只需要在主题所在目录下,找到 functions.php ,然后最尾部加上:

/* 所有回复都发邮件 */
function comment_mail_notify($comment_id) {
    $comment = get_comment($comment_id);
    $parent_id = $comment->comment_parent ? $comment->comment_parent : '';
    $spam_confirmed = $comment->comment_approved;
    if (($parent_id != '') && ($spam_confirmed != 'spam')) {
        $wp_email = 'no-reply@' . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME'])); //e-mail 发出点, no-reply 可改为可用的 e-mail.
        $to = trim(get_comment($parent_id)->comment_author_email);
        $subject = '您在 [' . get_option("blogname") . '] BLOG的留言有了回复';
        $message = '
            <p>' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p>
            <p style="color:#999;">您曾在《' . get_the_title($comment->comment_post_ID) . '》的留言:</p>
            <p style="background-color:#fafafa; border:1px solid #eee; padding:0 15px; border-radius:5px; padding: 8px;">' . trim(get_comment($parent_id)->comment_content) . '</p>
            <p style="color:#999;">' . trim($comment->comment_author) . ' 给您的回复:</p>
            <p style="background-color:#fafafa; border:1px solid #eee; padding:0 15px; border-radius:5px; padding: 8px;">' . trim($comment->comment_content) . '</p>
            <p style="color:#999;">您可以<a href="' . htmlspecialchars(get_comment_link($parent_id,array("type" => "all"))) . '">查看回复的完整內容</a>。</p>
            <p style="color:#999;">(此邮件由系统自动发送,请勿回复.)</p>';
        $from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
        $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
        wp_mail( $to, $subject, $message, $headers );
    }
}
add_action('comment_post', 'comment_mail_notify');

5、数据库备份

找了非常多,能够备份并发送到指定邮箱中的,目前只有 WordPress Database Backup 插件。当然它有个不好就是无法连通媒体文件一起备份。哎,没有多余的FTP空间真心伤不起,而用邮箱附件来做备份真心方便,QQ邮箱给的空间还是非常大的。