Trying to smtp.qq.com:465 Error: Remote host returned “” Error: Cannot connenct to relay host smtp.qq.com Error: (0) Error: Cannot send email to pooy@pooy.net
这个问题是说链接不到邮件服务器。我首先是按照腾讯的企业邮箱来做配置的。
在后台,系统基本参数-》核心设置 里面设置如下:
然后在后台参考/user/reg_new.php这个注册程序,写了一个test脚本:
- $to = "pooy@pooy.net";
- $userhash = md5($cfg_cookie_encode.'--'.$mid.'--'.$email);
- $url = $cfg_basehost.(emptyempty($cfg_cmspath) ? '/' : $cfg_cmspath)."/member/index_do.php?fmdo=checkMail&mid={$mid}&userhash={$userhash}&do=1";
- $url = preg_replace("#http:\/\/#i", '', $url);
- $url = 'http://'.preg_replace("#\/\/#", '/', $url);
- $mailtitle = "{$cfg_webname}--会员邮件验证通知";
- $mailbody = '';
- $mailbody .= "尊敬的用户[{$uname}],您好:\r\n";
- $mailbody .= "欢迎注册成为[{$cfg_webname}]的会员。\r\n";
- $mailbody .= "要通过注册,还必须进行最后一步操作,请点击或复制下面链接到地址栏访问这地址:\r\n\r\n";
- $mailbody .= "{$url}\r\n\r\n";
- $mailbody .= "Power by pooy!\r\n";
- $headers = "From: ".$cfg_adminemail."\r\nReply-To: ".$cfg_adminemail;
- if($cfg_sendmail_bysmtp == 'Y' && !emptyempty($cfg_smtp_server))
- {
- $mailtype = 'TXT';
- require_once(DEDEMINC.'/mail.class.php');
- $smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);
- $smtp->debug = true;
- $smtp->sendmail($to,$cfg_webname,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
- }else{
- @mail($to, $webname, $subject, $headers);
- }
上面这段代码,里面利用了2中发送邮件的方式,第一种是利用/include/mail.class.php这个类来发送,第二种是利用系统的邮件系统发送。
执行之后,就开始报错:
Trying to smtp.qq.com:465 Error: Remote host returned “” Error: Cannot connenct to relay host smtp.qq.com Error: (0) Error: Cannot send email to pooy@pooy.net
然后使用:
- @mail($to, $webname, $subject, $headers);
发现可以正常发送,只是有丁点慢。不过还能接受。然后就开始调试,1个小时无果,然后就打开foxmail添加该企业邮箱,发现了一个问题:
如果仔细查看,会发现foxmail默认导入的时候是使用的是:
服务器:smtp.qq.com
端口 :25
而不是企业邮箱里面提示的: