使用php的编码功能-mime.inc(2)

 更新时间:2016年11月25日 17:03  点击:1769
<?php
// $Horde: horde/lib/MIME.php,v 1.63 2001/08/08 21:00:27 chuck Exp $
$mime_types =
array(
        TYPETEXT => 'text', 'text' => TYPETEXT,
        TYPEMULTIPART => 'multipart', 'multipart' => TYPEMULTIPART,
        TYPEMESSAGE => 'message', 'message' => TYPEMESSAGE,
        TYPEAPPLICATION => 'application', 'application' => TYPEAPPLICATION,
        TYPEAUDIO => 'audio', 'audio' => TYPEAUDIO,
        TYPEIMAGE => 'image', 'image' => TYPEIMAGE,
        TYPEVIDEO => 'video', 'video' => TYPEVIDEO,
        TYPEOTHER => 'unknown', 'unknown' => TYPEOTHER
        );
$mime_encodings =
array(
        ENC7BIT => '7bit', '7bit' => ENC7BIT,
        ENC8BIT => '8bit', '8bit' => ENC8BIT,
        ENCBINARY => 'binary', 'binary' => ENCBINARY,
        ENCBASE64 => 'base64', 'base64' => ENCBASE64,
        ENCQUOTEDPRINTABLE => 'quoted-printable', 'quoted-printable' => ENCQUOTEDPRINTABLE,
        ENCOTHER => 'unknown', 'unknown' => ENCOTHER
        );
/**
* The MIME:: class provides methods for dealing with MIME standards.
*
* @author    Chuck Hagenbuch <chuck@horde.org>
* @version $Revision: 1.64 $
* @since     Horde 1.3
<?php
/*
    include "mime_mail.inc";
    $filename     = "testfile.jpg";
    $content_type = "image/jpeg";
    # 坐取磁碟彦的 JPEG 应用实例
(作者:陈俊清 2000年10月18日 11:58)
  POP3收取邮件的类在前面的文章中已经给大家做了详细的介绍,下面我们来看看如何应用这个类:
  <?
  include("pop3.inc.php");
  $host="pop.china.com";
  $user="boss_ch";
  $pass="026007";
  $rec=new pop3($host,110,2);
  if (!$rec->open()) die($rec->err_str);
  echo "open ";
  if (!$rec->login($user,$pass)) die($rec->err_str);
  echo "login";
  if (!$rec->stat()) die($rec->err_str);
  echo "共有".$rec->messages."封信件,共".$rec->size."字节大小<br>";
  
  if ($rec->messages>0)
   {
   if (!$rec->listmail()) die($rec->err_str);
   echo "有以下信件:<br>";
   for ($i=1;$i<=count($rec->mail_list);$i++)
   {
   echo "信件".$rec->mail_list[$i][num]."大小:".$rec->mail_list[$i][size]."<BR>";
   }
   $rec->getmail(1);
   echo "邮件头的内容:<br>";
   for ($i=0;$i<count($rec->head);$i++)
   echo htmlspecialchars($rec->head[$i])."<br> ";
   echo "邮件正文 :<BR>";
   for ($i=0;$i<count($rec->body);$i++)
   echo htmlspecialchars($rec->body[$i])."<br> ";
   }
  $rec->close();
  ?>
  如果你把pop3类中的debug设为true的话,你还可以看到程序与pop3服务器是如何对话的,用于正在调试的程序来说,这样显得更为直观。
  小结
  从以上的这个实例我们可以看到PHP真的是网站开发的一个功能非常强大的工具,但是也可以感觉到,PHP做为一种混合形的语言,其面对对象的开发与其它的工具如java相比还存在不少让人遗憾的地方。这个pop类的实现也还有不少需要改进之处,欢迎各位同仁们指导。
  如有想要取得完整的源代码的朋友,请与本人联系: boss_ch@netease.com
你是不是抱怨过,当你呆在一个朋友的房子或拜访亲戚时,想检查邮件但是不知道你的POP/IMAP设置。或者更糟的是,他们没有POP或IMAP软件?
  基于Web的电子邮件似乎只是在最近才在网上被谈起。这里就是如何使用PHP来生成一个快速的,简单的和有效的IMAP或POP 邮件阅读器。一旦这个做好了,你现在就能够从世界的任何一个角落仅用一个浏览器来阅读你的邮件。
  第一件必需知道的是确认你已经具有了一个可用的IMAP服务器。你可以从ftp://ftp.cac.washington.edu/imap得到UW IMAP服务软件和库函数(你将需要把这个库编译进PHP中,所以你可能也要安装同库在一起的IMAP服务软件)。
  一旦你已经运行了IMAP服务器并且用IMAP支持编译过了PHP(确信你读过了PHP文档中关于如何编译支持IMAP的PHP),剩下的就很easy了!
  我们将生成一个好用和简单的基于3个脚本的mail阅读程序。
  第一个脚本将用来读取用在IMAP中的用户名及口令。我们将使用标准的PHP认证功能来做。
login.php3 包含:
--------------------------------------------------------------------------------
<?php
if (!$PHP_AUTH_USER) {
Header("WWW-authenticate: basic realm="Mail Chek"");
Header("HTTP/1.0 401 Unauthorized"); }
else {
$MYDIR=ereg_replace("/[^/]+$","",$PHP_SELF);
Header("Location: $SERVER_NAME$MYDIR/messages.php3"); }
?>
--------------------------------------------------------------------------------
  它简单地读取你的用户名和口令并且重定向到邮件阅读页面。
messages.php3 包含:
--------------------------------------------------------------------------------
<?php
$MAILSERVER="{localhost/imap}";
$link=imap_open($MAILSERVER,$PHP_AUTH_USER,$PHP_AUTH_PW);
$headers=imap_headers($link);
for($x=1; $x < count($headers); $x++) { $idx=($x-1);
echo "<a href="view.php3?num=$x">$headers[$idx]</a><br>"; }
?>
--------------------------------------------------------------------------------
  它打开一个IMAP连接到通过$MAILSERVER所指定的邮件服务器,传递你的用户名和口令。
电子邮件在网络中占有很重要的地位。目前,在企业中运行的邮件服务器均用各自独立的管理系统来实现账号创建、口令修改、邮箱扩容、删除邮箱等功能。当邮箱用户达到一定数量时,邮件管理员的日常维护工作显得极为繁重,这就需要将一部分管理任务(如账号申请)实现自动化处理;同时将一部分任务(如口令修改)由多个分组管理员来负责,从而使邮件管理员从繁琐的维护工作中解脱出来,真正对邮件服务器起到监管作用。
  邮件服务器及开发环境的选择
  目前很多邮件服务器不提供开发接口,因此在企业内部实现开发邮件管理系统的首要问题是,寻找一种能够与开发语言相结合的开放式邮件系统。
  由于对稳定性要求很高,因此大型电子邮件系统一般都使用Unix作为服务器的操作系统。例如,Hotmail使用的是FreeBSD和Solaris系统。
  Linux自带的邮件由于在系统结构上存在一定缺陷,难以承受大用户量的访问。qmail是GNU下一款著名的自由软件,是新一代Unix邮件系统,支持Maildir存储方式。它把每个邮件作为一个单独的文件保存在用户个人的邮件目录下。qmail支持虚拟域(Virtual Domain)和虚拟用户(Virtual User)。当前国内流行的免费电子邮件系统大都采用qmail作为基本服务器软件,提供多级目录以支持较大的用户数。
  从开发的角度看,PHP+Linux的开发模式已被许多开发人员采用。利用PHP来调用qmail提供的控制程序,实现对邮件系统的各种管理工作。为实现对大量用户的有效控制,还可引入数据库管理。本文将介绍一个PHP +Oracle+qmail+Linux的开发实例。
  总体设计
  整个系统分为邮箱管理和邮件收发两部分。申请邮箱时,先填写一些必要的信息,然后系统会自动地创建邮箱并允许用户立即使用。当用户忘记密码后,可采用目前互联网的通用做法,通过回答用户自定义的问题来修改邮箱密码。出于安全考虑,在用户三次回答错问题后,系统将该账号的“修复邮箱密码”功能锁定30分钟。
  邮件管理依据不同的需求,将用户权限分为以下3种级别:
  ◆ 普通用户 能够在浏览器中收发电子邮件、修改邮箱密码、修改自定义问题和答案,并进行邮箱的查询。
  ◆ 分组管理员 除拥有普通用户的功能外,可以修改本组内所有账号的密码,解除本科室账号的“修复邮箱密码”功能锁定。
  ◆ 邮箱管理员 可以修改全部邮箱口令、删除邮箱、修改邮箱容量、查看邮箱的申请情况,解除全部账号的“修复邮箱密码”功能锁定。
[!--infotagslink--]

相关文章

  • 图解PHP使用Zend Guard 6.0加密方法教程

    有时为了网站安全和版权问题,会对自己写的php源码进行加密,在php加密技术上最常用的是zend公司的zend guard 加密软件,现在我们来图文讲解一下。 下面就简单说说如何...2016-11-25
  • ps怎么使用HSL面板

    ps软件是现在很多人都会使用到的,HSL面板在ps软件中又有着非常独特的作用。这次文章就给大家介绍下ps怎么使用HSL面板,还不知道使用方法的下面一起来看看。 &#8195;...2017-07-06
  • Plesk控制面板新手使用手册总结

    许多的朋友对于Plesk控制面板应用不是非常的了解特别是英文版的Plesk控制面板,在这里小编整理了一些关于Plesk控制面板常用的使用方案整理,具体如下。 本文基于Linu...2016-10-10
  • 使用insertAfter()方法在现有元素后添加一个新元素

    复制代码 代码如下: //在现有元素后添加一个新元素 function insertAfter(newElement, targetElement){ var parent = targetElement.parentNode; if (parent.lastChild == targetElement){ parent.appendChild(newEl...2014-05-31
  • 使用GruntJS构建Web程序之构建篇

    大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
  • 使用percona-toolkit操作MySQL的实用命令小结

    1.pt-archiver 功能介绍: 将mysql数据库中表的记录归档到另外一个表或者文件 用法介绍: pt-archiver [OPTION...] --source DSN --where WHERE 这个工具只是归档旧的数据,不会对线上数据的OLTP查询造成太大影响,你可以将...2015-11-24
  • 如何使用php脚本给html中引用的js和css路径打上版本号

    在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css、js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候,浏览器就可以从浏览器的缓存中获取css、...2015-11-24
  • jQuery 1.9使用$.support替代$.browser的使用方法

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。 如果要全面支持 IE,并混合...2014-05-31
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    一、percona-toolkit简介 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索...2015-11-24
  • C#注释的一些使用方法浅谈

    C#注释的一些使用方法浅谈,需要的朋友可以参考一下...2020-06-25
  • MySQL日志分析软件mysqlsla的安装和使用教程

    一、下载 mysqlsla [root@localhost tmp]# wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz--19:45:45-- http://hackmysql.com/scripts/mysqlsla-2.03.tar.gzResolving hackmysql.com... 64.13.232.157Conn...2015-11-24
  • php语言中使用json的技巧及json的实现代码详解

    目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。我写过一篇《数据类型和JSON格式》,探讨它的设计思想。今天,我想总结一下PHP语言对它的支持,这是开发互联网应用程序(特别是编写API)必须了解的知识...2015-10-30
  • PHP实现无限级分类(不使用递归)

    无限级分类在开发中经常使用,例如:部门结构、文章分类。无限级分类的难点在于“输出”和“查询”,例如 将文章分类输出为<ul>列表形式; 查找分类A下面所有分类包含的文章。1.实现原理 几种常见的实现方法,各有利弊。其中...2015-10-23
  • php类的使用实例教程

    php类的使用实例教程 <?php /** * Class program for yinghua05-2 * designer :songsong */ class Template { var $tpl_vars; var $tpl_path; var $_deb...2016-11-25
  • 双冒号 ::在PHP中的使用情况

    前几天在百度知道里面看到有人问PHP中双冒号::的用法,当时给他的回答比较简洁因为手机打字不大方便!今天突然想起来,所以在这里总结一下我遇到的双冒号::在PHP中使用的情况!双冒号操作符即作用域限定操作符Scope Resoluti...2015-11-08
  • 浅析Promise的介绍及基本用法

    Promise是异步编程的一种解决方案,在ES6中Promise被列为了正式规范,统一了用法,原生提供了Promise对象。接下来通过本文给大家介绍Promise的介绍及基本用法,感兴趣的朋友一起看看吧...2021-10-21
  • 使用jquery修改表单的提交地址基本思路

    基本思路: 通过使用jquery选择器得到对应表单的jquery对象,然后使用attr方法修改对应的action 示例程序一: 默认情况下,该表单会提交到page_one.html 点击button之后,表单的提交地址就会修改为page_two.html 复制...2014-06-07
  • PHP mysql与mysqli事务使用说明 分享

    mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。应用比较多的地方是 mysqli的事务。...2013-10-02
  • Postman安装与使用详细教程 附postman离线安装包

    这篇文章主要介绍了Postman安装与使用详细教程 附postman离线安装包,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-05
  • vs2019安装和使用详细图文教程

    这篇文章主要介绍了vs2019安装和使用详细图文教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25