完美解决WordPress邮件通知发件人及由某某代发的问题

我是比较追求完美的人,虽然说博客可以有评论及回复评论时发送邮件提醒,但还是不完美,如下图所示:

发件人是Wordpress,下面还多出了一行由“www”或者“root”@maitaidan.com代发,看着心里总有些刺挠,不解决了始终是块心病!

Google了一下,这种情况的不少,往往都是时分雷同,估计都是复制粘贴的,关键是我按照那些方法修改后,博客直接打不开了!诸位还是看麦钛蛋半原创的吧!(Wordpress版本:3.5 Sendmail发邮件,如果用SMTP会好很多)

一、修改发件人地址。

修改wp-includes目录下的pluggable.php文件,在最后一行加入如下代码:(注意不要用记事本修改,最好用Dreamweaver、UltraEdit等)

// 更改默认发信地址
add_filter('wp_mail_from','mail_from');
function mail_from() {
$emailaddress = 'admin@maitaidan.com'; //你的邮箱地址
return $emailaddress;
}
 
// 更改默认发信人名字
add_filter('wp_mail_from_name','mail_from_name');
function mail_from_name() {
$sendername = '麦钛蛋'; //你的名字
return $sendername;
}

ok,怎么修改注释都有,网上错误的方法是修改functions.php,我修改过后博客直接打不开了,为什么是修改pluggable.php而不是functions.php?这是pluggable.php中的一段:

 Using the two 'wp_mail_from' and 'wp_mail_from_name' hooks allow from
* creating a from address like 'Name <email@address.com>' when both are set. If
* just 'wp_mail_from' is set, then just the email address will be used with no
* name.

想必大家都明白了,人家说的很清楚 'wp_mail_from' 和 'wp_mail_from_name' 这两个函数是这里的。

二、由由 www@maitaidan.maitaidan.com 代发的问题

这个东西看起来非常难看啊。之前说的用hostname修改或者修改hosts文件都不完美,还是有小尾巴,仔细分析下,为什么出现代发QQ邮箱已经说得很明白了:真是发送地址和宣称的发送地址不一致,安全起见,提示你一下。

这很简单了,修改一下真实的发件地址就ok了,由于是采用sendmail发邮件,所以修改php.ini:

sendmail_path = /usr/sbin/sendmail -fadmin@maitaidan.com -t -i

注意要跟前面的地址一样才不会出现“代发”,-f后面没有空格。

sendmail发送邮件时,如果没有指定附加参数,默认它会把当前主机名作为邮件服务器、 以及命令它发邮件的Linux用户名作为发件者,加入到邮件头部信息。

到这里就差不多结束了,在我测试的时候,发现发件人不能是中文,用中文会显示不出来或者乱码!这不科学啊!想过是linux Chinese support的问题,但貌似不太可能,其实还是编码的问题!

由于 pluggable.php原文件使用的编码为GB2312简体中文,当修改后的信息中含有中文时如果直接保存会导致显示的发件人为乱码;如果保存为UTF-8带签名(UTF-8 有BOM)编码,则Wordpress后台登录后将变成空白。故修改完成后,需将文件另存为编码为UTF-8不带签名(UTF-8 无BOM)的同名文件以覆盖原文件。

一条评论

  1. 完美解决WordPress邮件通知发件人及由某某代发的问题
    avatar

    也不尽完美,主要是wordpress经常升级,升级后pluggable.php就会被覆盖,网站里面文件改的多的话,到时候可能会忘记修改过什么的。

    发表评论

  1. 😉
  2. 😐
  3. 😡
  4. 😈
  5. 🙂
  6. 😯
  7. 🙁
  8. 🙄
  9. 😛
  10. 😳
  11. 😮
  12. emoji-mrgree
  13. 😆
  14. 💡
  15. 😀
  16. 👿
  17. 😥
  18. 😎
  19. ➡
  20. 😕
  21. ❓
  22. ❗
  23. 66 queries in 0.428 seconds