我的空间服务商禁用了php的mail函数,称如果不禁用,可能造成大面积的ip因为垃圾评论被拉黑。那么wordpress就不能发送邮件了,通过邮件找回密码,通过邮件发送评论通知等等都不能用了。但是我们还有另外一种方法,可以通过SMTP服务使用第三方的服务商发送邮件。
首先,去一家免费电邮服务商那里注册一个帐号。例如网易或新浪。一开始我用的网易的,但是那边老是出553垃圾邮件错误,就换成了新浪的。这里需要注意的是,一定要配置一下邮件服务商的SMTP服务。有的是默认关闭的,需要开启。像网易更特殊一些,需要设置一个安全码,WordPress的密码需要用安全码设置,不能使用邮箱密码。
然后将下面的代码,拷贝到主题的functions.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邮件就美化好了!
1 |
你在《[postname]》的评论有了回复 |
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:注意安全问题。很可能这个邮箱被攻陷,这样你所有的邮件都泄露了,推荐注册一个新邮箱。
well
回复well
我自己的 VPS,打开了 php mail 函数,我以前用的 exim4 服务,一开始能向 gmail 邮箱发邮件,后来 gmail 认为从 php mail 经由 exim4 发过来的是垃圾邮件。所以现在改成了用 Gmail SMTP 插件来发送邮件。
Gmail 支持绑定自己的域名吗?还是说你用的 gmail.com 的邮箱?