<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://itecfun.com/extern.php?action=feed&amp;tid=3146&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[个人知识管理站 / PHPMailer不能连接SMTP服务器的两种常见原因（Could not connect to SMTP host）]]></title>
		<link>http://www.itecfun.com/viewtopic.php?id=3146</link>
		<description><![CDATA[PHPMailer不能连接SMTP服务器的两种常见原因（Could not connect to SMTP host） 最近发表的帖子。]]></description>
		<lastBuildDate>Thu, 28 May 2015 01:52:54 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[PHPMailer不能连接SMTP服务器的两种常见原因（Could not connect to SMTP host）]]></title>
			<link>http://www.itecfun.com/viewtopic.php?pid=3291#p3291</link>
			<description><![CDATA[<p>今日在配置远程服务器上的PHP邮件发送的时候，发现出现Error: Could not connect to SMTP host，换成本地服务器发送却正常，经查发现是服务器上的fsockopen被禁用，一下是网上查到的内容，记录下。<br />原文连接：http://blog.i1728.com/post/PHPMailer_Could_notconnect_to_SMTP_host.html</p><p>PHPmailer无法发送邮件，提示错误Error: Could not connect to SMTP host</p><p>出现这种情况一般有两种原因：<br />1.无法发出请求，本地设置问题 <br />2.连接被stmp服务器拒绝，可能账号出问题，比如发信量大且频繁</p><p>第二种情况比较好解决，换一个登陆账号或者登陆IP就可以了。</p><p>针对第一种情况，执行以下脚本测试<br />&lt;?php<br />$fp = fsockopen(&quot;smtp.163.com&quot;,25,&amp;$errno,&amp;$errstr,60); <br />if(! $fp) <br />&#160; &#160; echo &#039;$errstr&#160; &#160;($errno) &lt;br&gt; \n &#039;; <br />else <br />&#160; &#160; echo &#039;ok &lt;br&gt; \n &#039;;<br />?&gt;</p><p>如果报错:Warning: fsockopen() has been disabled for security reasons。<br />说明fsockopen函数被禁用，PHPmailer发送Email依赖此函数。<br />解决方法参考《fsockopen函数被禁用的解决之道》，修改class.smtp.php中的代码$this-&gt;smtp_conn = @fsockopen 为$this-&gt;smtp_conn = @pfsockopen 即可。</p><p>如果报错:php_network_getaddresses: getaddrinfo failed <br />可能服务器DNS设置问题，导致不能解析域名、从而找不到stmp服务器。也可能服务器所在网络环境屏蔽掉stmp服务器。如果不是自己的机器，暂时没有好的解决方法。</p><p>在之前转载的一篇文章，将<br />function IsSMTP() {<br />$this-&gt;Mailer = &#039;smtp&#039;;<br />}</p><p>改成：<br />function IsSMTP() {<br />$this-&gt;Mailer = &#039;SMTP&#039;;<br />}<br />这个方法是错误的，并不能解决Could not connect to SMTP host，并且会由于代码问题，邮件发送方式改变，<br />本文只说了常见的两种原因，但也可能是其他原因，比如stmp服务器被DDOS或者其他原因暂时不可连接。不在我等考虑范围之内故未列出</p>]]></description>
			<author><![CDATA[dummy@example.com (xuyg)]]></author>
			<pubDate>Thu, 28 May 2015 01:52:54 +0000</pubDate>
			<guid>http://www.itecfun.com/viewtopic.php?pid=3291#p3291</guid>
		</item>
	</channel>
</rss>
