为了增加Wordpress的博客互动性,一些内容可能需要访问者注册登录后才能查看。Wordpress默认注册方式是以邮件形式获取随机密码并完成注册的。但是在测试的时候发现无法接收到网站发来的注册信息,在排除了SMTP服务正常之后,便是发信端的问题,而通常是环境配置造成的。
如果采用的是linux VPS,装载Centos 6.4的系统。Wordpress新用户注册发送的邮件默认是采用PHPMailer函数发送,Linux服务器只需要启用sendmail服务即可。如果是自己的VPS没有启用该服务,可以通过以下命令启用该服务:
/etc/init.d/sendmail start
如果是Windows服务器环境的话,则建议使用SMTP协议来发送邮件信息。具体方法如下
1. 将/wp-includes/pluggable.php这个文件的
$phpmailer->IsMail();
修改为
$phpmailer->IsSMTP();
就是说不使用Mail函数,换为SMTP方式。
2. 再修改/wp-includes/class-phpmailer.php这个文件里的SMTP参数(SMTP VARIABLES)为:
var $Host = “SMTP.xxx.com”; //你使用的SMTP服务器,如SMTP.163.com。
var $SMTPAuth = True;
var $Username = “youname@xxx.com; // 电邮用户名
var $Password = “*********” // 电邮密码
发件人和email地址的修改方法:
修改wp-includes目录下的pluggable.php文件
也有一种方法是直接在wp-includes目录下的pluggable.php文件下面加上如下代码,大家可以自己尝试。
再解决”由***代发”的问题。继续搜索”wordpress@”,Wordpress3.6版本在第1057行:
$wp_email = 'me@' . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME']));
该行为Wordpress邮件代发的email地址。当你没有Web服务器的管理权限,又不想让别人看到一些不必要的信息时,可以把这里的email修改成自己的。
如果发件人为中文名,可能在接收email时会显示乱码等现象,这是由于文件编码导致的,编辑文件时使用UTF-8不带签名(UTF-8 无BOM格式)即可,推荐使用Notepad++进行编辑。