我的空间服务商禁用了php的mail函数,称如果不禁用,可能造成大面积的ip因为垃圾评论被拉黑。那么wordpress就不能发送邮件了,通过邮件找回密码,通过邮件发送评论通知等等都不能用了。但是我们还有另外一种方法,可以通过SMTP服务使用第三方的服务商发送邮件。

首先,去一家免费电邮服务商那里注册一个帐号。例如网易或新浪。一开始我用的网易的,但是那边老是出553垃圾邮件错误,就换成了新浪的。这里需要注意的是,一定要配置一下邮件服务商的SMTP服务。有的是默认关闭的,需要开启。像网易更特殊一些,需要设置一个安全码,WordPress的密码需要用安全码设置,不能使用邮箱密码。

然后将下面的代码,拷贝到主题的functions.php里面。

send email by smtp

PHP

1

2

3

4

5

6

7

8

9

10

11

12

//通过SMTP发送邮件

add_action('phpmailer_init', 'mail_smtp');

function mail_smtp( $phpmailer ) {

$phpmailer->FromName = 'noreply'; //发件人名称

$phpmailer->Host = 'smtp.xxxx.com'; //修改成你的邮箱SMTP服务器

$phpmailer->Port = 25; //修改你的SMTP端口

$phpmailer->Password = 'password'; //输入你的邮箱密码

$phpmailer->SMTPAuth = true;

$phpmailer->IsSMTP();

}

这样,就把WordPress原来的邮件mail函数替换成了smtp的发送邮件。这下WordPress所有的邮件功能都可以用了,包括评论邮件通知,邮件找回密码等等。

附赠的Comment Reply Notification邮件模板

安装好Comment Reply Notification这个插件,在设置里面,把下面两段分别复制到标题和内容,HTML邮件就美化好了!

html email title

1

你在《[postname]》的评论有了回复

html email body

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<div style="background-color:#fff; border:1px solid #666666; color:#111; -moz-border-radius:8px; -webkit-border-radius:8px; -khtml-border-radius:8px; border-radius:8px; font-size:12px; width:302px; margin:0 auto; margin-top:10px;">

  <div style="background:#666666; width:100%; height:60px; color:white; -moz-border-radius:6px 6px 0 0; -webkit-border-radius:6px 6px 0 0; -khtml-border-radius:6px 6px 0 0; border-radius:6px 6px 0 0; ">

    <span style="height:60px; line-height:60px; margin-left:30px; font-size:12px;"> 您在<a style="text-decoration:none; color:#ff0;font-weight:600;" href="[blogurl]"> [blogname]</a> 上的留言有回复啦!</span></div>

  <div style="width:90%; margin:0 auto">

    <p> [cc_author], 您好!</p>

    <p> [pc_date]您曾在《[postname]》这篇文章留言:

      <br />

      <p style="background-color: #EEE;border: 1px solid #DDD;padding: 20px;margin: 15px 0;">[pc_content]</p>

      <p> [cc_author][cc_date]对您回复说:

        <br />

        <p style="background-color: #EEE;border: 1px solid #DDD;padding: 20px;margin: 15px 0;">[cc_content]</p>

        <p>你可以点击<a href="[commentlink]"> [commentlink]</a>查看评论内容</p>

        <p><strong>谢谢你在 <a href="[blogurl]">[blogname]</a>留下脚印,欢迎常来访问!</strong> </p>

        <p>(此邮件由系统自动发出, 请勿回复。就算你回复了,我也不会看。)</p>

  </div>

</div>

效果如下:

Ps:通过Comment Reply Notification插件发送评论通知的话,这个过程是阻塞的。就是说,用户发送评论的时候速度会很慢。知道邮件发出去,用户才得到响应。

Pss:还需要注意的是,邮件服务商要求比较严格,发件人和用户名必须是一个。需要把你WordPress的帐号换成你邮箱的用户名字。

Psv:注意安全问题。很可能这个邮箱被攻陷,这样你所有的邮件都泄露了,推荐注册一个新邮箱。