中国数据网
http://www.dbchina.net
收藏本页
联系我们
 
如何创建和实现MIME邮件类? ~ admin
  现在让我们用PHP创建和实现一个MIME邮件类。这个MIME类必须能够:
  1、增加附件
  2、对每一个独立的请求,对所附的数据进行编码
  3、创建MIME段/头
  4、生成一个包含MIME段/头的完整的邮件
  5、将整个邮件作为字符串返回
  6、用本地的邮件处理程序进行发送(或选择调用一个SMTP邮件处理程序)

  这个类叫做MIME_mail。

<?php
class MIME_mail {
var $to;
var $from;
var $subject;
var $body;
var $headers = "";
var $errstr="";

var $base64_func= ''; // 如果未指定使用PHP的base64函数
var $qp_func = ''; // 此时为空
var $mailer = ""; // 将其设为有效的邮件对象的名字
?>

  这里有一些公共处理的变量(也就是,可以在脚本中直接操纵的变量)。这些变量中的大部分都是自说明的。$headers包含了可选的想要发送给邮件处理程序的头信息。$errstr 是一个包含可读错误字符串的变量,它可以用在调用脚本中。

  $base64_func和$qp_func是"函数处理器",用户可以进行定制。缺省地,它们被设为空串。对于$base64_func,一个空串意味着我们将使用PHP内置的base64_encode()函数 。Quoted Printable可以通过$qp_func被处理。在PHP中没有内置的quoted-printable 编码函数(然而,安装了imap则可以使用imap_qprint())。在这篇文章中我们将不再讨论quoted_printable方法。

<?php
//私有:
var $mimeparts = array();
?>

  $mimeparts是一个内部数组,包含了邮件信息中各自独立的符合MIME段。请不要在这个类(或派生类)之外操纵它和其它的私有方法/变量。

<?php
// 构造函数
function MIME_mail($from="", $to="", $subject="", $body="", $headers = "")
{
$this->to = $to;
$this->from = $from;
$this->subject = $subject;
$this->body = $body;
if (is_array($headers)) {
if (sizeof($headers)>1) $headers=join(CRLF, $headers);
else $headers=$headers[0];
}
if ($from) {
$headers = preg_replace("!(from: ?.+?[ ]? )!i", '', $headers);
}
$this->headers = chop($headers);
$this->mimeparts[] = "" ; //增加位置0
return;
}
?>
Copyright ©2006-2009 DbChina.Net | 鲁ICP备05031207号