• 网络学院
  • 新手学堂
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
使用php通过Socket进行发信源码,支持发信认证
广告位
  站点:
  • 首 页
  • 最新软件
  • 最新文章
  • 国内软件
  • 国外软件
  • 汉化软件
  • 源码下载
  • 字体下载
使用php通过Socket进行发信源码,支持发信认证
软件发布 使用php通过Socket进行发信源码,支持发信认证
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回首页 | 文章首页 | 编程技术 | PHP教程 | 使用php通过Socket进行发信源码,支持发信认证

使用php通过Socket进行发信源码,支持发信认证

 

添加时间: 2005-6-27 4:59:38  作者: PHP教程收集  阅读次数:170   来源: http://d9soft.com

 

 

       

使用php直接打开socket端口进行发信的小程序
特点是使用smtp认证,能够更好的使用满足一般网友建站需要。

<?

//使用前请首先按照提示进行配置发信认证的用户名、密码以及smtp服务器地址、发件人信箱等。
//注意将#替换成#,落伍(www.d9soft.com)可随意使用,但保留版权信息

//例子
echo send_mail('fuweng#im286.com','发信标题','发信内容');


function send_mail($to, $subject = 'No subject', $body) {
        $loc_host = "im286";            //发信计算机名,可随意
        $smtp_acc = "fuweng#im286.com"; //Smtp认证的用户名,类似d9soft@163.com,或者fuweng
        $smtp_pass="password";          //Smtp认证的密码,一般等同pop3密码
        $smtp_host="smtp.im286.com";    //SMTP服务器地址,类似 smtp.tom.com
        $from="fuweng#im286.com";       //发信人Email地址,你的发信信箱地址
    $headers = "Content-Type: text/plain; charset=\"gb2312\"\r\nContent-Transfer-Encoding: base64";
    $lb="\r\n";                    //linebreak
           
        $hdr = explode($lb,$headers);     //解析后的hdr
    if($body) {$bdy = preg_replace("/^\./","..",explode($lb,$body));}//解析后的Body

        $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,"","");
        //8.3、发送其他Header内容
        foreach($hdr as $h) {$smtp[] = array($h.$lb,"","");}
        //8.4、发送一个空行,结束Header发送
        $smtp[] = array($lb,"","");
        //8.5、发送信件主体
        if($bdy) {foreach($bdy as $b) {$smtp[] = array(base64_encode($b.$lb).$lb,"","");}}
        //9、发送“.”表示信件结束,期待返回250
        $smtp[] = array(".".$lb,"250","DATA(end)error: ");
        //10、发送Quit,退出,期待返回221
        $smtp[] = array("QUIT".$lb,"221","QUIT error: ");

        //打开smtp服务器端口
        $fp = @fsockopen($smtp_host, 25);
        if (!$fp) echo "<b>Error:</b> Cannot conect to ".$smtp_host."<br>";
        while($result = @fgets($fp, 1024)){if(substr($result,3,1) == " ") { break; }}
       
        $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."<br>";
                        }
                }
        }
        //关闭连接
        @fclose($fp);
        return $result_str;
}
?> 

转自:动态网制作指南 www.knowsky.com

 

 

 

上下文章:

 

上一篇文章: PHP应用分页显示制作详细讲解 下一篇文章: PHP和JAVA的XML-RPC中文问题解决办法

相关文章:

  • 盗号记录器通过钩子专盗网络游戏账号
  • Oracle全球客户支持副总裁汤姆·舒尔滋演讲
  • ORACLE OCP认证的各门考试科目
  • 在IT行业中,借专家之眼看:Oracle认证
  • Oracle 丰富认证体系 新增资深专家的认证

相关软件:

  • 长龙宽带上网WEB认证系统 V1.3.9.8
  • Disk-Key 钥匙盘认证加密系统 V8.05.03
  • 网页特效库2006[198特效使用方法]电子书
  • 虚拟机爱好者必备-VMware虚拟机使用帮助教程
  • WinXP使用技巧58集版 全面精通XP
  • PHPStat网站决策支持系统 v1.0 修改版

 

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • VFP程序的五点经验
  • 令你的网站获得任意Google PR值的...
  • PHP和JAVA的XML-RPC中文问题解决办...
  • PHP发现安全漏洞
  • php调用mysql存储过程和函数的方法
  • 用PHP5进行三层开发
  • php与XML、XSLT、Mysql的结合运用...
  • 用GD图库生成横竖柱状图折线图的类
  • 一个全面获取图象信息的函数getIm...
  • PHP入门

PHP教程阅读排行

  • PHP新手上路(一)
  • PHP新手上路(三)
  • PHP新手上路(二)
  • php调用mysql存储过程和函数的方法
  • PHP新手上路(四)
  • PHP学习之PHP变量
  • PHP新手上路(五)
  • PHP新手上路(六)
  • php的header和asp中的redirect比较
  • PHP新手上路(七)

编程技术阅读总排行

  • VB入门教程之一
  • 第二章 PowerBuilder 入门之创建新...
  • Java连接数据库实例
  • 第一章 什么是PowerBuilder
  • VC++之List Box/Check List Box控...
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有