{"id":56,"date":"2020-02-08T11:27:18","date_gmt":"2020-02-08T03:27:18","guid":{"rendered":"http:\/\/www.explore.name\/wordpress\/?p=56"},"modified":"2020-11-14T10:39:22","modified_gmt":"2020-11-14T02:39:22","slug":"%e4%bd%bf%e7%94%a8php-fsockopen%e5%8f%91%e9%80%81%e9%82%ae%e4%bb%b6%e5%87%ba%e7%8e%b0error-cannot-conect-to-smtp-qq-com","status":"publish","type":"post","link":"http:\/\/www.explore.name\/wordpress\/index.php\/2020\/02\/08\/%e4%bd%bf%e7%94%a8php-fsockopen%e5%8f%91%e9%80%81%e9%82%ae%e4%bb%b6%e5%87%ba%e7%8e%b0error-cannot-conect-to-smtp-qq-com\/","title":{"rendered":"\u4f7f\u7528php @fsockopen\u53d1\u9001\u90ae\u4ef6\u51fa\u73b0Error: Cannot conect to smtp.qq.com"},"content":{"rendered":"<p>\u5f53\u7f51\u7ad9\u4ece\u865a\u62df\u4e3b\u4efb\u8fc1\u79fb\u5230ECS\u4e91\u670d\u52a1\u5668\u65f6\uff0c\u6570\u636e\u5e93\u8fde\u63a5\u9700\u8981\u4fee\u6539\u3001\u57df\u540d\u89e3\u6790\u9700\u8981\u4fee\u6539\uff0c\u5176\u4e2d\u90ae\u4ef6\u53d1\u9001\u53ef\u80fd\u4f1a\u51fa\u9519\uff0c\u51fa\u9519\u4fe1\u606f\u4e3a\uff1aError: Cannot conect to smtp.qq.com\uff0c\u5f53\u51fa\u73b0\u4ee5\u4e0a\u4fe1\u606f\u539f\u56e0\u53ef\u80fd\u662f$fp = @fsockopen($smtp_host, 25);\u4e2d\u7684\u7aef\u53e3\u95ee\u9898\uff0c\u5728\u4e91\u670d\u52a1\u5668\u4e2d\u4e0d\u80fd\u4f7f\u752825\u7aef\u53e3\u8fdb\u884c\u53d1\u9001\u90ae\u4ef6\uff0c\u6539\u4e3a$fp = @fsockopen($smtp_host, 587);\u540e\u53ef\u6b63\u5e38\u53d1\u9001\u90ae\u4ef6\u3002<\/p>\n<p><code>\/*\u53d1\u9001\u90ae\u4ef6\u51fd\u6570*\/<br \/>\nfunction send_mail($to, $subject = 'No subject', $body) {<br \/>\n$loc_host = \"test\";                 \/\/\u53d1\u4fe1\u8ba1\u7b97\u673a\u540d\uff0c\u53ef\u968f\u610f<br \/>\n$smtp_acc = \"XXXXXXXXX@qq.com\";        \/\/Smtp\u8ba4\u8bc1\u7684\u7528\u6237\u540d\uff0c\u7c7b\u4f3cfuweng@im286.com\uff0c\u6216\u8005fuweng<br \/>\n$smtp_pass=\"qq\u90ae\u7bb1\u72ec\u7acb\u5bc6\u7801\";              \/\/Smtp\u8ba4\u8bc1\u7684\u5bc6\u7801\uff0c\u4e00\u822c\u7b49\u540cpop3\u5bc6\u7801<br \/>\n$smtp_host=\"smtp.qq.com\";    \/\/SMTP\u670d\u52a1\u5668\u5730\u5740\uff0c\u7c7b\u4f3c smtp.tom.com<br \/>\n$from=\"XXXXXX@qq.com\";              \/\/\u53d1\u4fe1\u4ebaEmail\u5730\u5740\uff0c\u4f60\u7684\u53d1\u4fe1\u4fe1\u7bb1\u5730\u5740<br \/>\n$headers = \"Content-Type: text\/plain; charset=\\\"utf-8\\\"\\r\\nContent-Transfer-Encoding: base64\";<br \/>\n$lb=\"\\r\\n\";                         \/\/linebreak<\/code><\/p>\n<p>$hdr = explode($lb,$headers); \/\/\u89e3\u6790\u540e\u7684hdr<br \/>\nif($body) {<br \/>\n$bdy = preg_replace(&#8220;\/^\\.\/&#8221;,&#8221;..&#8221;,explode($lb,$body)); \/\/\u89e3\u6790\u540e\u7684Body<br \/>\n}<\/p>\n<p>$smtp = array(<br \/>\n\/\/1\u3001EHLO\uff0c\u671f\u5f85\u8fd4\u56de220\u6216\u8005250<br \/>\narray(&#8220;EHLO &#8220;.$loc_host.$lb,&#8221;220,250&#8221;,&#8221;HELO error: &#8220;),<br \/>\n\/\/2\u3001\u53d1\u9001Auth Login\uff0c\u671f\u5f85\u8fd4\u56de334<br \/>\narray(&#8220;AUTH LOGIN&#8221;.$lb,&#8221;334&#8243;,&#8221;AUTH error:&#8221;),<br \/>\n\/\/3\u3001\u53d1\u9001\u7ecf\u8fc7Base64\u7f16\u7801\u7684\u7528\u6237\u540d\uff0c\u671f\u5f85\u8fd4\u56de334<br \/>\narray(base64_encode($smtp_acc).$lb,&#8221;334&#8243;,&#8221;AUTHENTIFICATION error : &#8220;),<br \/>\n\/\/4\u3001\u53d1\u9001\u7ecf\u8fc7Base64\u7f16\u7801\u7684\u5bc6\u7801\uff0c\u671f\u5f85\u8fd4\u56de235<br \/>\narray(base64_encode($smtp_pass).$lb,&#8221;235&#8221;,&#8221;AUTHENTIFICATION error : &#8220;)<br \/>\n);<br \/>\n\/\/5\u3001\u53d1\u9001Mail From\uff0c\u671f\u5f85\u8fd4\u56de250<br \/>\n$smtp[] = array(&#8220;MAIL FROM: &lt;&#8220;.$from.&#8221;&gt;&#8221;.$lb,&#8221;250&#8243;,&#8221;MAIL FROM error: &#8220;);<br \/>\n\/\/6\u3001\u53d1\u9001Rcpt To\u3002\u671f\u5f85\u8fd4\u56de250<br \/>\n$smtp[] = array(&#8220;RCPT TO: &lt;&#8220;.$to.&#8221;&gt;&#8221;.$lb,&#8221;250&#8243;,&#8221;RCPT TO error: &#8220;);<br \/>\n\/\/7\u3001\u53d1\u9001DATA\uff0c\u671f\u5f85\u8fd4\u56de354<br \/>\n$smtp[] = array(&#8220;DATA&#8221;.$lb,&#8221;354&#8243;,&#8221;DATA error: &#8220;);<br \/>\n\/\/8.0\u3001\u53d1\u9001From<br \/>\n$smtp[] = array(&#8220;From: &#8220;.$from.$lb,&#8221;&#8221;,&#8221;&#8221;);<br \/>\n\/\/8.2\u3001\u53d1\u9001To<br \/>\n$smtp[] = array(&#8220;To: &#8220;.$to.$lb,&#8221;&#8221;,&#8221;&#8221;);<br \/>\n\/\/8.1\u3001\u53d1\u9001\u6807\u9898<br \/>\n$smtp[] = array(&#8220;Subject: &#8220;.$subject.$lb,&#8221;&#8221;,&#8221;&#8221;);<br \/>\n\/\/8.3\u3001\u53d1\u9001\u5176\u4ed6Header\u5185\u5bb9<br \/>\nforeach($hdr as $h) {$smtp[] = array($h.$lb,&#8221;&#8221;,&#8221;&#8221;);}<br \/>\n\/\/8.4\u3001\u53d1\u9001\u4e00\u4e2a\u7a7a\u884c\uff0c\u7ed3\u675fHeader\u53d1\u9001<br \/>\n$smtp[] = array($lb,&#8221;&#8221;,&#8221;&#8221;);<br \/>\n\/\/8.5\u3001\u53d1\u9001\u4fe1\u4ef6\u4e3b\u4f53<br \/>\nif($bdy) {foreach($bdy as $b) {$smtp[] = array(base64_encode($b.$lb).$lb,&#8221;&#8221;,&#8221;&#8221;);}}<br \/>\n\/\/9\u3001\u53d1\u9001\u201c.\u201d\u8868\u793a\u4fe1\u4ef6\u7ed3\u675f\uff0c\u671f\u5f85\u8fd4\u56de250<br \/>\n$smtp[] = array(&#8220;.&#8221;.$lb,&#8221;250&#8243;,&#8221;DATA(end)error: &#8220;);<br \/>\n\/\/10\u3001\u53d1\u9001Quit\uff0c\u9000\u51fa\uff0c\u671f\u5f85\u8fd4\u56de221<br \/>\n$smtp[] = array(&#8220;QUIT&#8221;.$lb,&#8221;221&#8243;,&#8221;QUIT error: &#8220;);<\/p>\n<p>\/\/\u6253\u5f00smtp\u670d\u52a1\u5668\u7aef\u53e3<br \/>\n$fp = @fsockopen($smtp_host, 587);<br \/>\nif (!$fp) echo &#8220;Error: Cannot conect to &#8220;.$smtp_host.&#8221;&#8221;;<br \/>\nwhile($result = @fgets($fp, 1024)){<br \/>\nif(substr($result,3,1) == &#8221; &#8220;) { break; }<br \/>\n}<\/p>\n<p>$result_str=&#8221;&#8221;;<br \/>\n\/\/\u53d1\u9001smtp\u6570\u7ec4\u4e2d\u7684\u547d\u4ee4\/\u6570\u636e<br \/>\nforeach($smtp as $req){<br \/>\n\/\/\u53d1\u9001\u4fe1\u606f<br \/>\n@fputs($fp, $req[0]);<br \/>\n\/\/\u5982\u679c\u9700\u8981\u63a5\u6536\u670d\u52a1\u5668\u8fd4\u56de\u4fe1\u606f\uff0c\u5219<br \/>\nif($req[1]){<br \/>\n\/\/\u63a5\u6536\u4fe1\u606f<br \/>\nwhile($result = @fgets($fp, 1024)){<br \/>\nif(substr($result,3,1) == &#8221; &#8220;) { break; }<br \/>\n};<br \/>\nif (!strstr($req[1],substr($result,0,3))){<br \/>\n$result_str.=$req[2].$result.&#8221;&#8221;;<br \/>\n}<br \/>\n}<br \/>\n}<br \/>\n\/\/\u5173\u95ed\u8fde\u63a5<br \/>\n@fclose($fp);<br \/>\nreturn $result_str;<br \/>\n}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5f53\u7f51\u7ad9\u4ece\u865a\u62df\u4e3b\u4efb\u8fc1\u79fb\u5230ECS\u4e91\u670d\u52a1\u5668\u65f6\uff0c\u6570\u636e\u5e93\u8fde\u63a5\u9700\u8981\u4fee\u6539\u3001\u57df\u540d\u89e3\u6790\u9700\u8981\u4fee\u6539\uff0c\u5176\u4e2d\u90ae\u4ef6\u53d1\u9001\u53ef\u80fd\u4f1a\u51fa\u9519\uff0c\u51fa\u9519\u4fe1\u606f\u4e3a\uff1aError: Cannot conect to smtp.qq.com\uff0c\u5f53\u51fa\u73b0\u4ee5\u4e0a\u4fe1\u606f\u539f\u56e0\u53ef\u80fd\u662f$fp = @fsockopen($smtp_host, 25);\u4e2d\u7684\u7aef\u53e3\u95ee\u9898\uff0c\u5728\u4e91\u670d\u52a1\u5668\u4e2d\u4e0d\u80fd\u4f7f\u752825\u7aef\u53e3\u8fdb\u884c\u53d1\u9001\u90ae\u4ef6\uff0c\u6539\u4e3a$fp = @fsockopen($smtp_host, 587);\u540e\u53ef\u6b63\u5e38\u53d1\u9001\u90ae\u4ef6\u3002 \/*\u53d1\u9001\u90ae\u4ef6\u51fd\u6570*\/ function send_mail($to, $subject = &#8216;No subject&#8217;, $body) { $loc_host = &#8220;test&#8221;; \/\/\u53d1\u4fe1\u8ba1\u7b97\u673a\u540d\uff0c\u53ef\u968f\u610f $smtp_acc = &#8220;XXXXXXXXX@qq.com&#8221;; \/\/Smtp\u8ba4\u8bc1\u7684\u7528\u6237\u540d\uff0c\u7c7b\u4f3cfuweng@im286.com\uff0c\u6216\u8005fuweng $smtp_pass=&#8221;qq\u90ae\u7bb1\u72ec\u7acb\u5bc6\u7801&#8221;; \/\/Smtp\u8ba4\u8bc1\u7684\u5bc6\u7801\uff0c\u4e00\u822c\u7b49\u540cpop3\u5bc6\u7801 $smtp_host=&#8221;smtp.qq.com&#8221;; \/\/SMTP\u670d\u52a1\u5668\u5730\u5740\uff0c\u7c7b\u4f3c smtp.tom.com $from=&#8221;XXXXXX@qq.com&#8221;; \/\/\u53d1\u4fe1\u4ebaEmail\u5730\u5740\uff0c\u4f60\u7684\u53d1\u4fe1\u4fe1\u7bb1\u5730\u5740 $headers = &#8220;Content-Type: text\/plain; charset=\\&#8221;utf-8\\&#8221;\\r\\nContent-Transfer-Encoding: base64&#8243;; $lb=&#8221;\\r\\n&#8221;; \/\/linebreak $hdr = explode($lb,$headers); \/\/\u89e3\u6790\u540e\u7684hdr if($body) { $bdy = preg_replace(&#8220;\/^\\.\/&#8221;,&#8221;..&#8221;,explode($lb,$body)); \/\/\u89e3\u6790\u540e\u7684Body } $smtp = array( \/\/1\u3001EHLO\uff0c\u671f\u5f85\u8fd4\u56de220\u6216\u8005250 array(&#8220;EHLO &#8220;.$loc_host.$lb,&#8221;220,250&#8221;,&#8221;HELO error: &#8220;), \/\/2\u3001\u53d1\u9001Auth Login\uff0c\u671f\u5f85\u8fd4\u56de334 array(&#8220;AUTH LOGIN&#8221;.$lb,&#8221;334&#8243;,&#8221;AUTH error:&#8221;), \/\/3\u3001\u53d1\u9001\u7ecf\u8fc7Base64\u7f16\u7801\u7684\u7528\u6237\u540d\uff0c\u671f\u5f85\u8fd4\u56de334 array(base64_encode($smtp_acc).$lb,&#8221;334&#8243;,&#8221;AUTHENTIFICATION error : &#8220;), \/\/4\u3001\u53d1\u9001\u7ecf\u8fc7Base64\u7f16\u7801\u7684\u5bc6\u7801\uff0c\u671f\u5f85\u8fd4\u56de235 array(base64_encode($smtp_pass).$lb,&#8221;235&#8221;,&#8221;AUTHENTIFICATION error : &#8220;) ); \/\/5\u3001\u53d1\u9001Mail From\uff0c\u671f\u5f85\u8fd4\u56de250 $smtp[] = array(&#8220;MAIL FROM: &lt;&#8220;.$from.&#8221;&gt;&#8221;.$lb,&#8221;250&#8243;,&#8221;MAIL FROM error: &#8220;); \/\/6\u3001\u53d1\u9001Rcpt To\u3002\u671f\u5f85\u8fd4\u56de250 $smtp[] = array(&#8220;RCPT TO: &lt;&#8220;.$to.&#8221;&gt;&#8221;.$lb,&#8221;250&#8243;,&#8221;RCPT TO error: &#8220;); \/\/7\u3001\u53d1\u9001DATA\uff0c\u671f\u5f85\u8fd4\u56de354 $smtp[] = array(&#8220;DATA&#8221;.$lb,&#8221;354&#8243;,&#8221;DATA error: &#8220;); \/\/8.0\u3001\u53d1\u9001From $smtp[] = array(&#8220;From: &#8220;.$from.$lb,&#8221;&#8221;,&#8221;&#8221;); \/\/8.2\u3001\u53d1\u9001To $smtp[] = array(&#8220;To: &#8220;.$to.$lb,&#8221;&#8221;,&#8221;&#8221;); \/\/8.1\u3001\u53d1\u9001\u6807\u9898 $smtp[] = array(&#8220;Subject: &#8220;.$subject.$lb,&#8221;&#8221;,&#8221;&#8221;); \/\/8.3\u3001\u53d1\u9001\u5176\u4ed6Header\u5185\u5bb9 foreach($hdr as $h) {$smtp[] =&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[5,4],"class_list":["post-56","post","type-post","status-publish","format-standard","hentry","category-php","tag-fsockopen","tag-php"],"_links":{"self":[{"href":"http:\/\/www.explore.name\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/56","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.explore.name\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.explore.name\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.explore.name\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.explore.name\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=56"}],"version-history":[{"count":1,"href":"http:\/\/www.explore.name\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/56\/revisions"}],"predecessor-version":[{"id":57,"href":"http:\/\/www.explore.name\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/56\/revisions\/57"}],"wp:attachment":[{"href":"http:\/\/www.explore.name\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=56"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.explore.name\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=56"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.explore.name\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=56"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}