WordPress登记时不能发邮件,修改程序代码直接显示密码的方法

WordPress注册时不能发邮件,修改程序代码直接显示密码的方法

文章摘自: http://www.cbjad.com/home.php?mod=space&do=blog&uid=1&id=3305

WordPress的用户注册机制是,填写用户名、邮箱,由WordPress生成随机密码,并发送到用户注册时填写的邮箱地址。但很多人的服务器并没有配置邮件服务(比如我正在用的这台服务器),或者由于邮件运行商的反垃圾邮件功能等原因,导致注册之后收不到 WordPress发送的密码邮件,无法完成注册。

很不方便…

既然如此,不如我们hacks一下wordpress。让WordPress注册时不发邮件,直接显示密码得了。
怎么改呢?很简单,只需改动WordPress根目录下的 wp-login.php 即可。

1、搜索下面这句,位于 register_new_user 函数中。用于注册成功后发送通知。找到后把它注释掉。
wp_new_user_notification($user_id, $user_pass);

2、并在上面这句的下一行加上两句:
setcookie("u", $user_login);
setcookie("user_pass", $user_pass);

目的是把注册时填写的用户名,以及wordpress随机生成的密码写入cookies,以便在后面调用。

3、搜索下面这句
$errors->add('registered', __('Registration complete. Please check your e-mail.'), 'message');

并把它替换为

$errors->add('registered', __(' ^__^ 注册成功!用户名:'.$_COOKIE["u"].'密码:'.$_COOKIE["user_pass"].'(登录后自行修改成您便于记忆的密码)'), 'message');

到此,就修改完成了。保存,上传。

--------------------------------------------------分割线--------------------------------------------------------

 

wordpress无法发送邮件解决方法及设置



 

为了防止垃圾邮件,禁止了系统的sendmail功能,wordpress用户只需要安装一个官方的smtp插件即可使用外接的邮件服务器来发信. 
如果不设置这个,游客或其他用户发表评论是可能会需要等待非常长的时间才能发出评论或出现脚本错误. 
插件地址:http://wordpress.org/extend/plugins/wp-mail-smtp/ 
安装好后先到后台plugins里去激活(Activate)WP-Mail-SMTP插件,然后后台左下方的设置(settings)里会出现email设置选项, 
以gmail为例: 
From Email:你的gmail地址 
From Name:发信人姓名,随便填 
Mailer:Send all WordPress emails via SMTP. 
SMTP Host:smtp.gmail.com 
SMTP Port:465 
Encryption:Use SSL encryption. 
Authentication:Yes: Use SMTP authenticati 
Username:你的gmail用户名(企业版用户请填写邮件地址) 
Password:你的gmail密码

 

QQMAIL的设置 
接收邮件服务器:pop.qq.com,使用SSL,端口号995 
发送邮件服务器:smtp.qq.com,使用SSL,端口号25 
账户名:您的QQ邮箱账户名(如果您是VIP帐号或Foxmail帐号,账户名需要填写完整的邮件地址) 
密码:您的QQ邮箱密码 
电子邮件地址:您的QQ邮箱的完整邮件地址