老实说PW开发人员真的很有点懒,很多问题拖了好久都没解决,
如今DZ的版本已经不再是单纯的论坛程序了,成了社区类了,
不知道PW接下来会怎样继续发展,难道又继续跟随DZ的脚步?
这个 邮件发送用户名空白或乱码,是在群发邮件时候出现的,
对于开启了定期群发邮件的朋友来说最郁闷的了,
从5.X开始就一直没得到解决方案,这次终于被海峰解决了。
PW6.0和5.X邮件发送模块都有一个共同的BUG,
那就是当后台群发邮件或找回密码的时侯,
发件人名字和收件人名字无法显示(WEB访问)或乱码(客户端访问)。
经过仔细观察,终于发现了问题出处,成功解决了这个BUG,
下面以PW6.0为例说明一下修复这个BUG的过程。
1、打开(建议使用记事本)require目录下的sendemail.php,找到

程序代码
function sendemail($toemail,$subject,$message,$additional){

改为:

程序代码
function sendemail($toemail,$subject,$message,$additional,$fromname,$sendtoname){

找到:

程序代码
$db_charset,$sendtoname;

改为:

程序代码
$db_charset;

找到:

程序代码
$send_from = "=?$db_charset?B?".base64_encode($windid)."?= <$fromemail>";

改为:

程序代码
$send_from = "=?$db_charset?B?".base64_encode($fromname)."?= <$fromemail>";

2、打开论坛根目录下的sendemail.php,
找到:

程序代码
sendemail($sendtoemail,$subject,$atc_content,'email_additional');

改为:

程序代码
sendemail($sendtoemail,$subject,$atc_content,'email_additional',$fromname,$sendtoname);

3、打开论坛根目录下的sendpwd.php,
找到:

程序代码
$pwuser = rawurlencode($pwuser);

在上面添加一行:

程序代码
$sendtoname = $pwuser;

再找到:

程序代码
sendemail($send_email,'email_sendpwd_subject','email_sendpwd_content','email_additional');

改为:
程序代码
sendemail($send_email,'email_sendpwd_subject','email_sendpwd_content','email_additional',$db_bbsname,$sendtoname);

4、打开admin目录下的sendmail.php,
找到:

程序代码
sendemail($rt['email'],$subject,$sendmessage,'email_additional')

改为:

程序代码
sendemail($rt['email'],$subject,$sendmessage,'email_additional',$db_bbsname,$rt['username']);

5、打开论坛根目录下的register.php,
找到:

程序代码
sendemail($regemail,'email_check_subject','email_check_content','email_additional');

改为:

程序代码
sendemail($regemail,'email_check_subject','email_check_content','email_additional',$db_bbsname,$windid);

找到:

程序代码
sendemail($regemail,'email_welcome_subject','email_welcome_content','email_additional');

改为:

程序代码
sendemail($regemail,'email_welcome_subject','email_welcome_content','email_additional',$db_bbsname,$windid);

6、打开论坛根目录下的pw_ajax.php,
找到:

程序代码
sendemail($sendtoemail,$subject,$atc_content,'email_additional');

改为:

程序代码
sendemail($sendtoemail,$subject,$atc_content,'email_additional',$fromname,$sendtoname);

7、打开论坛根目录下的remail.php,
找到:

程序代码
sendemail($to_email,'email_check_subject','email_check_content','email_additional');

改为:

程序代码
sendemail($to_email,'email_check_subject','email_check_content','email_additional',$db_bbsname,$men['username']);

8、打开require目录下的postreply.php,
找到:

程序代码
sendemail($send_address,'email_reply_subject','email_reply_content','email_additional')

改为:

程序代码
sendemail($send_address,'email_reply_subject','email_reply_content','email_additional',$db_bbsname,$detail['author'])

修改完毕,再发送群发邮件或找回密码试试。
PS:如果正确设置后台参数后仍然不能发送邮件的,可能是你使用的邮箱不支持POP3。