首页 / PHP / php如何验证smtp信息的正确
php如何验证smtp信息的正确
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php如何验证smtp信息的正确,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2379字,纯文字阅读大概需要4分钟。
内容图文
![php如何验证smtp信息的正确](/upload/InfoBanner/zyjiaocheng/198/62a40117b03c40b696dfcfec253ae9c1.jpg)
回复讨论(解决方案)
dede的启用smtp方式发送邮件的设置,你是安装的插件吗?
我本地装的最新dede好像没这个功能设置哦
回楼上大牛,我只要能验证smtp信息是否正确就行,不需要做成dede插件。
//打开smtp服务器端口
$fp = @fsockopen($smtp_host, 25);
if (!$fp)
echo "Error: Cannot conect to ".$smtp_host."
";
$smtp = array( //1、EHLO,期待返回220或者250 array("EHLO ".$loc_host.$lb,"220,250","HELO error: "), //2、发送Auth Login,期待返回334 array("AUTH LOGIN".$lb,"334","AUTH error:"), //3、发送经过Base64编码的用户名,期待返回334 array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION error : "), //4、发送经过Base64编码的密码,期待返回235 array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : ") ); //5、发送Mail From,期待返回250 $smtp[] = array("MAIL FROM: <".$from.">".$lb,"250","MAIL FROM error: "); //6、发送Rcpt To。期待返回250 $smtp[] = array("RCPT TO: <".$to.">".$lb,"250","RCPT TO error: "); //7、发送DATA,期待返回354 $smtp[] = array("DATA".$lb,"354","DATA error: "); //8.0、发送From $smtp[] = array("From: ".$from.$lb,"",""); //8.2、发送To $smtp[] = array("To: ".$to.$lb,"",""); //8.1、发送标题 $smtp[] = array("Subject: ".$subject.$lb,"","");$result_str=""; //发送smtp数组中的命令/数据 foreach($smtp as $req) { //发送信息 @fputs($fp, $req[0]); //如果需要接收服务器返回信息,则 if($req[1]) { //接收信息 while($result = @fgets($fp, 1024)) { if(substr($result,3,1) == " ") { break; } }; if (!strstr($req[1],substr($result,0,3))) { $result_str.=$req[2].$result."
"; } } } //关闭连接 @fclose($fp); return $result_str; }
倒没有没弄过验证smtp的端口、用户名、密码,端口还好说,但用户名、密码的话,只能尝试去请求来判断了...
function smtp_sockopen_relay()
{
$this->log_write("Trying to ".$this->relay_host.":".$this->smtp_port."\n");
$this->sock = @fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out);
if (!($this->sock && $this->smtp_ok()))
{
$this->log_write("Error: Cannot connenct to relay host ".$this->relay_host."\n");
$this->log_write("Error: ".$errstr." (".$errno.")\n");
return FALSE;
}
$this->log_write("Connected to relay host ".$this->relay_host."\n");
return TRUE;;
}
内容总结
以上是互联网集市为您收集整理的php如何验证smtp信息的正确全部内容,希望文章能够帮你解决php如何验证smtp信息的正确所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。