在做邮件发送的时候遇到了一个问题,就是:

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

这个问题是说链接不到邮件服务器。我首先是按照腾讯的企业邮箱来做配置的。

dedecms配置腾讯企业邮箱

在后台,系统基本参数-》核心设置 里面设置如下:

dedecms配置腾讯企业邮箱2

然后在后台参考/user/reg_new.php这个注册程序,写了一个test脚本:

	$to = "pooy@pooy.net";
        $userhash = md5($cfg_cookie_encode.'--'.$mid.'--'.$email);
	$url = $cfg_basehost.(empty($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' && !empty($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添加该企业邮箱,发现了一个问题:

dedecms配置腾讯企业邮箱3

 

如果仔细查看,会发现foxmail默认导入的时候是使用的是:

服务器:smtp.qq.com

端口   :25

而不是企业邮箱里面提示的:

接收服务器:
pop.exmail.qq.com(使用SSL,端口号995)
发送服务器:
smtp.exmail.qq.com(使用SSL,端口号465)
我无语了,既然465端口有误,为什么还要提示我使用这个呢?修改之后再去执行那个测试脚本,一切正常!
邮件来了~

dedecms配置腾讯企业邮箱4

 

所有出现Trying to smtp.qq.com:465 Error: Remote host returned  这个问题的时候,首先检查这个端口是否能用吧。

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="">

请选择吧!