脚本宝典收集整理的这篇文章主要介绍了使用TLS使用来自PHP的Gmails传出SMTP,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
阅读http://mail.google.com/support/bin/answer.py?answer=13287之后,我认为这就像更改端口号和协议一样简单,但我无法让它工作.
fsockoPEn("ssl://smtp.gmail.com",465,$errNum,$errStr,30); // WORKS fsockopen("tls://smtp.gmail.COM",587,30); // FAILS
给出的错误是:
Warning: fsockopen(): SSL operation Failed wITh code 1. OpenSSL Error messages: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number in Command line code on line 1 Warning: fsockopen(): Failed to enable crypto in Command line code on line 1 Warning: fsockopen(): unable to connect to tls://smtp.gmail.com:587 (UnkNown error) in Command line code on line 1
<?PHP function get($socket,$length=1024){ $send = ''; $sr = fgets($socket,$length); while( $sr ){ $send .= $sr; if( $sr[3] != '-' ){ break; } $sr = fgets($socket,$length); } return $send; } function put($socket,$cmd,$length=1024){ fputs($socket,$cmd."\r\n",$length); } if (!($smtp = fsockopen("smtp.gmail.com",$errno,$errstr,15))) { die("Unable to connect"); } echo "<PRe>\n"; echo get($smtp); // should return a 220 if you want to check $cmd = "EHLO ${_SERVER['HTTP_HOST']}"; echo $cmd."\r\n"; put($smtp,$cmd); echo get($smtp); // 250 $cmd = "STARTTLS"; echo $cmd."\r\n"; put($smtp,$cmd); echo get($smtp); // 220 if(false == stream_socket_enable_crypto($smtp,true,STREAM_CRYPTO_METHOD_TLS_CLIENT)){ // fclose($smtp); // unsure if you need to close as I haven't run into a security fail at this point die("unable to start tls encryption"); } $cmd = "EHLO ".$_SERVER['HTTP_HOST']; echo $cmd; put($smtp,$cmd); echo get($smtp); // 250 $cmd = "QUIT"; echo $cmd."\r\n"; put($smtp,$cmd); echo get($smtp); echo "</pre>"; fclose($smtp);
以上是脚本宝典为你收集整理的使用TLS使用来自PHP的Gmails传出SMTP全部内容,希望文章能够帮你解决使用TLS使用来自PHP的Gmails传出SMTP所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。