电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 在线教程-> PHP
POP3、SMTP邮件收发程序-PHP教程,PHP应用
作者:网友供稿 点击:20
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
<?php
if ($email_inc) return;
$email_inc= "defined";
define( "smtpport",25);

class pop3 {
var $subject; // 邮件主题
var $from_email; // 发件人地址
var $from_name; // 发件人姓名
var $to_email; // 收件人地址
var $to_name; // 收件人姓名
var $body; // 邮件内容
var $filename; // 文件名
var $socket; // 当前的 socket
var $line;
var $status;

function pop3_open($server, $port)
{

$this->socket = fsockopen($server, $port);
if ($this->socket <= 0){
return false;
}
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return false;
return true;
}

function pop3_user($user)
{

if ($this->socket < 0){
return false;
}
fputs($this->socket, "user $this->userrn");
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return false;

return true;
}

function pop3_pass( $pass)
{

fputs($this->socket, "pass $passrn");
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return 0;

return 1;
}

function pop3_stat()
{

fputs($this->socket, "statrn");
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return 0;

if (!eregi( "+ok (.*) (.*)", $this->line, $regs))
return 0;

return $regs[1];
}

function pop3_list()
{
fputs($this->socket, "listrn");
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return 0;

$i = 0;
while (substr($this->line = fgets($this->socket, 1024), 0, 1) <> ".")
{
$articles[$i] = $this->line;
$i++;
}
$articles[ "count"] = $i;

return $articles;
}

function pop3_retr($nr)
{

fputs($this->socket, "retr $nrrn");
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return 0;

while (substr($this->line = fgets($this->socket, 1024), 0, 1) <> ".")
{
$data[$i] = $this->line;
$i++;
}
$data[ "count"] = $i;

return $data;
}

function pop3_dele( $nr)
{

fputs($this->socket, "dele $nrrn");
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return 0;
return 1;
}

function pop3_quit()
{

fputs($this->socket, "quitrn");
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return 0;

return 1;
}
}

class smtp {

var $subject; // string the emails subject
var $fromname; // string senders name (opt)
var $toname; // string recipients name (opt)
var $body; // string body copy
var $attachment; // attachment (optional)
var $attachmenttype;
var $socket;
var $line;
var $status;

function smtp($server = "localhost",$port = smtpport)
{
return $this->open($server, $port);
}

function smtpmail($fromemail, $fromname, $toemail, $toname, $subject, $body, $attachment=null, $attachmenttype= "text")
{
$this->subject = $subject;
$this->toname = $toname;

$this->fromname = $fromname;
$this->body = $body;

$this->attachment = $attachment;
$this->attachmenttype = $attachmenttype;

if ($this->helo() == false){
return false;
}
if ($this->mailfrom($fromemail) == false){
return false;
}
if ($this->rcptto($toemail) == false){
return false;
}
if ($this->body() == false){
return false;
}
if ($this->quit() == false){
return false;
}
}

function open($server, $port)
{

$this->socket = fsockopen($server, $port);
if ($this->socket < 0) return false;

$this->line = fgets($this->socket, 1024);

$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "2") return false;

return true;
}


function helo()
{
if (fputs($this->socket, "helorn") < 0 ){
return false;
}
$this->line = fgets($this->socket, 1024);

$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "2") return false;

return true;
}

function ehlo()
{

/* well, lets use "helo" for now.. until we need the
extra funcs [unk]
*/
if(fputs($this->socket, "helo localhostrn")<0){
return false;
}
$this->line = fgets($this->socket, 1024);

$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "2") return false;

return true;
}


function mailfrom($fromemail)
{

if (fputs($this->socket, "mail from: <$fromemail>rn")<0){
return false;
}

$this->line = fgets($this->socket, 1024);

$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "2") return false;

return true;
}

function rcptto($toemail)
{

if(fputs($this->socket, "rcpt to: <$toemail>rn")<0){
return false;
}
$this->line = fgets($this->socket, 1024);

$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "2") return false;
return true;
}

function body()
{
$filesize = 0;
$attachment = null;
$fp = null;

$buffer = sprintf( "from: %srnto:%srnsubject:%srn", $this->fromname, $this->toname, $this->subject);

if(fputs($this->socket, "datarn")<0){
return false;
}
$this->line = fgets($this->socket, 1024);

$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "3") return false;

if(fputs($this->socket, $buffer)<0){
return false;
}


if ($this->attachment == null){

if(fputs($this->socket, "mime-version: 1.0rncontent-type: text/plain; charset=iso-8859-1rncontent-transfer-encoding: 7bitrnrn")<0){
return false;
}
if(fputs($this->socket, "$this->bodyrnrn")<0){
return false;
}

if(fputs($this->socket, ".rn")<0){
return false;
}

$this->
pop3、smtp邮件收发程序

 发表时间: 2001年09月28日 阅读次数: 18 推荐给朋友 打印本页

<?php
if ($email_inc) return;
$email_inc= "defined";
define( "smtpport",25);

class pop3 {
var $subject; // 邮件主题
var $from_email; // 发件人地址
var $from_name; // 发件人姓名
var $to_email; // 收件人地址
var $to_name; // 收件人姓名
var $body; // 邮件内容
var $filename; // 文件名
var $socket; // 当前的 socket
var $line;
var $status;

function pop3_open($server, $port)
{

$this->socket = fsockopen($server, $port);
if ($this->socket <= 0){
return false;
}
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return false;
return true;
}

function pop3_user($user)
{

if ($this->socket < 0){
return false;
}
fputs($this->socket, "user $this->userrn");
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return false;

return true;
}

function pop3_pass( $pass)
{

fputs($this->socket, "pass $passrn");
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return 0;

return 1;
}

function pop3_stat()
{

fputs($this->socket, "statrn");
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return 0;

if (!eregi( "+ok (.*) (.*)", $this->line, $regs))
return 0;

return $regs[1];
}

function pop3_list()
{
fputs($this->socket, "listrn");
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return 0;

$i = 0;
while (substr($this->line = fgets($this->socket, 1024), 0, 1) <> ".")
{
$articles[$i] = $this->line;
$i++;
}
$articles[ "count"] = $i;

return $articles;
}

function pop3_retr($nr)
{

fputs($this->socket, "retr $nrrn");
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return 0;

while (substr($this->line = fgets($this->socket, 1024), 0, 1) <> ".")
{
$data[$i] = $this->line;
$i++;
}
$data[ "count"] = $i;

return $data;
}

function pop3_dele( $nr)
{

fputs($this->socket, "dele $nrrn");
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return 0;
return 1;
}

function pop3_quit()
{

fputs($this->socket, "quitrn");
$this->line = fgets($this->socket, 1024);
$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "+") return 0;

return 1;
}
}

class smtp {

var $subject; // string the emails subject
var $fromname; // string senders name (opt)
var $toname; // string recipients name (opt)
var $body; // string body copy
var $attachment; // attachment (optional)
var $attachmenttype;
var $socket;
var $line;
var $status;

function smtp($server = "localhost",$port = smtpport)
{
return $this->open($server, $port);
}

function smtpmail($fromemail, $fromname, $toemail, $toname, $subject, $body, $attachment=null, $attachmenttype= "text")
{
$this->subject = $subject;
$this->toname = $toname;

$this->fromname = $fromname;
$this->body = $body;

$this->attachment = $attachment;
$this->attachmenttype = $attachmenttype;

if ($this->helo() == false){
return false;
}
if ($this->mailfrom($fromemail) == false){
return false;
}
if ($this->rcptto($toemail) == false){
return false;
}
if ($this->body() == false){
return false;
}
if ($this->quit() == false){
return false;
}
}

function open($server, $port)
{

$this->socket = fsockopen($server, $port);
if ($this->socket < 0) return false;

$this->line = fgets($this->socket, 1024);

$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "2") return false;

return true;
}


function helo()
{
if (fputs($this->socket, "helorn") < 0 ){
return false;
}
$this->line = fgets($this->socket, 1024);

$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "2") return false;

return true;
}

function ehlo()
{

/* well, lets use "helo" for now.. until we need the
extra funcs [unk]
*/
if(fputs($this->socket, "helo localhostrn")<0){
return false;
}
$this->line = fgets($this->socket, 1024);

$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "2") return false;

return true;
}


function mailfrom($fromemail)
{

if (fputs($this->socket, "mail from: <$fromemail>rn")<0){
return false;
}

$this->line = fgets($this->socket, 1024);

$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "2") return false;

return true;
}

function rcptto($toemail)
{

if(fputs($this->socket, "rcpt to: <$toemail>rn")<0){
return false;
}
$this->line = fgets($this->socket, 1024);

$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "2") return false;
return true;
}

function body()
{
$filesize = 0;
$attachment = null;
$fp = null;

$buffer = sprintf( "from: %srnto:%srnsubject:%srn", $this->fromname, $this->toname, $this->subject);

if(fputs($this->socket, "datarn")<0){
return false;
}
$this->line = fgets($this->socket, 1024);

$this->status[ "lastresult"] = substr($this->line, 0, 1);
$this->status[ "lastresulttxt"] = substr($this->line, 0, 1024);

if ($this->status[ "lastresult"] <> "3") return false;

if(fputs($this->socket, $buffer)<0){
return false;
}


if ($this->attachment == null){

if(fputs($this->socket, "mime-version: 1.0rncontent-type: text/plain; charset=iso-8859-1rncontent-transfer-encoding: 7bitrnrn")<0){
return false;
}
if(fputs($this->socket, "$this->bodyrnrn")<0){
return false;
}

if(fputs($this->socket, ".rn")<0){
return false;
}

$this->

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·Windows下的PHP5.0安装配制详解-PHP教程,PHP安装
·PHP在XP下IIS和Apache2服务器上的安装-PHP教程,PHP应用
·最近忙于FTP,好站多多!有好多好东东哦!不敢独享!-PHP教程,PHP基础
·PHP 5.0 Pear安装方法-PHP教程,PHP安装
·PHP开发利器-PRADO 1.6(4)-PHP教程,PHP应用
·Sun Sparc Solaris 2.6 Apache-1.3.12+MySQL-3.23.5+PHP-3.0.15 安装记-PHP教程,PHP应用
·php5学习笔记(转)-PHP教程,PHP应用
·APACHE安装笔记-PHP教程,PHP安装
·PHP.MVC的模板标签系统(四)-PHP教程,PHP应用
·PHP.MVC的模板标签系统(二)-PHP教程,PHP应用

最新文章
·PHP源码-利用 QQWry.Dat 实现 IP 地址高效检索
·Php高手带路--问题汇总解答[2]
·PHPQQ编程(2):取QQ在线状态
·php5手动最简安装方法
·福利彩票幸运号码自动生成器
·PHP开发利器-PRADO 1.6
·在Apache 服务器上启用PHP支持
·Windows2000_pro下安装Apache+PHP4+My
·php文件上传的实现
·PHP开发框架的现状和展望


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号