加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php Socket发送邮件验证邮箱的真实有效性而非格式

发布时间:2020-05-25 07:04:50 所属栏目:PHP 来源:互联网
导读:php Socket发送邮件验证邮箱的真实有效性而非格式

下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。

脚本之家小编现在分享给大家,也给大家做个参考。

<?php

/*请尊重别人的劳动成功,请保留此版权信息,谢谢!
作者:小露珠3.3
扬帆修正一点东西:在代码中已经用注释注明,本代码现在向qq发信没问题~
*/
set_time_limit(120);

class smtp_mail
{
    var $host;           //主机
    var $port;           //端口 一般为25
    var $user;           //SMTP认证的帐号
    var $pass;           //认证密码
    var $debug = false;   //是否显示和服务器会话信息?
    var $conn;
    var $result_str;       //结果
    var $in;           //客户机发送的命令
    var $from;           //源信箱
    var $to;           //目标信箱
    var $subject;         //主题
    var $body;           //内容
    function smtp_mail($host,$port,$user,$pass,$debug=false)
    {
       $this->host   = $host;
       $this->port   = $port;
       $this->user   = base64_encode($user);
       $this->pass   = base64_encode($pass);
       $this->debug   = $debug;
       $this->socket = socket_create (AF_INET,SOCK_STREAM,SOL_TCP);   //具体用法请参考手册
       if($this->socket)
       {
       $this->result_str   =   "创建SOCKET:".socket_strerror(socket_last_error());
       $this->debug_show($this->result_str);
       }
       else
       {
       exit("初始化失败,请检查您的网络连接和参数");
       }
       $this->conn = socket_connect($this->socket,$this->host,$this->port);
       if($this->conn)
       {
       $this->result_str   =   "创建SOCKET连接:".socket_strerror(socket_last_error());
       $this->debug_show($this->result_str);
       }
       else
       {
       exit("初始化失败,请检查您的网络连接和参数");
       }
       $this->result_str = "服务器应答:<font color=#cc0000>".socket_read ($this->socket,1024)."</font>";
       $this->debug_show($this->result_str);

    }
    function debug_show($str)
    {
       if($this->debug)
       {
       echo $str."<p>rn";
       }
    }
    function send($from,$to,$subject,$body)
    {
       if($from == "" || $to == "")
       {
       exit("请输入信箱地址");
       }
       if($subject == "") $sebject = "无标题";
       if($body     == "") $body     = "无内容";
       $this->from     =   $from;
       $this->to       =   $to;
       $this->subject   =   $subject;
       $this->body     =   $body;

           //扬帆修改部分代码
       $All           = "From:<".$this->from.">rn";
       $All           .= "To:<".$this->to.">rn";
       $All           .= "Subject:".$this->subject."rnrn";
       $All           .= $this->body;
       /*
       如过把$All的内容再加处理,就可以实现发送MIME邮件了
       不过还需要加很多程序
       */

       //以下是和服务器会话
       $this->in       =   "EHLO HELOrn";
       $this->docommand();

       $this->in       =   "AUTH LOGINrn";
       $this->docommand();

       $this->in       =   $this->user."rn";
       $this->docommand();

       $this->in       =   $this->pass."rn";
       $this->docommand();

    // $this->in       =   "MAIL FROM:".$this->from."rn";
       $this->in       =   "MAIL FROM:<".$this->from.">rn";   //扬帆修改
       $this->docommand();

    // $this->in       =   "RCPT TO:".$this->to."rn";
       $this->in       =   "RCPT TO:<".$this->to.">rn";     //扬帆修改
       $this->docommand();

       $this->in       =   "DATArn";
       $this->docommand();

         $this->in       =   $All."rn.rn";
       $this->docommand();

       $this->in       =   "QUITrn";
       $this->docommand();

       //结束,关闭连接

    }
    function docommand()
    {
       socket_write ($this->socket,$this->in,strlen ($this->in));
       $this->debug_show("客户机命令:".$this->in);
       $this->result_str = "服务器应答:<font color=#cc0000>".socket_read ($this->socket,1024)."</font>";
       $this->debug_show($this->result_str);
    }
}
?>

<?php
//测试页面
include "smtp_mail.php";

//你用这个类的时候你修改成你自己的信箱就可以了
$smtp=new smtp_mail("smtp.qq.com","25","[emailprotected]","Your password",true);
//如果你需要显示会话信息,请将上面的修改成
//$smtp   =   new smtp_mail("smtp.qq.com","你的qq.com的帐号","你的密码",true);
$smtp->send("[emailprotected]","[emailprotected]","你好","测试邮件");
?> 

以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读