A-A+

网站后台邮件无法发送问题

2015年02月10日 服务器 暂无评论 阅读 2,821 views 次

前几天给客户配置了一台香港linux服务器,上面有4个网站,唯独其中一个不能发送邮件,各种原因排查,折腾了我好几天。

情况描述:

1、在服务器上其他网站可以发送,唯独这个网站不能发送邮件;(确定网站问题!)

2、把网站放到其他服务器或本地环境测试都可以发送邮件;(难道不是网站的问题?)

 

问题原因:

香港服务器因为政策的原因做了些限制,导致邮箱不能自己发送给自己。

 

解决办法:

修改收件人邮箱和发件人邮箱不同

 

具体办法:

1、原始代码:

$headers = $cfg_adminemail;

$mailtype = 'TXT';

require_once(DEDEINC.'/mail.class.php');

$smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);

$smtp->debug = true;   //错误调试

$smtp->sendmail($cfg_smtp_usermail,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);

由红色代码标注处可以看出:原始代码发件人和收件人是一样的。

 

2、修改后的代码

$getletter = "admin@imdupeng.cn";    //此处设置收件人邮箱

$mailtype = 'TXT';

require_once(DEDEINC.'/mail.class.php');

$smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);

$smtp->sendmail($getletter,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);

添加一个收件人地址的变量$getletter,或者直接把发件人地址写到代码中,如下:

$mailtype = 'TXT';

require_once(DEDEINC.'/mail.class.php');

$smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);

$smtp->sendmail(admin@imdupeng.cn,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);

标签:

给我留言