核心:方法
我们将MIME信息头的生成,MIME段头的生成和最终的邮件消息的生成分成几个模块。方法的实现是直接从我们前面遇到的MIME基础而来的。
<?php
function attach($data, $description = "", $contenttype = OCTET, $encoding = BASE64, $disp = '') {
if (empty($data))
return 0;
if (trim($contenttype) == '')
$contenttype = OCTET ;
if (trim($encoding) == '')
$encoding = BASE64;
if ($encoding == BIT7)
$emsg = $data;
elseif ($encoding == QP)
$emsg = $$this->qp_func($data);
elseif ($encoding == BASE64) {
if (!$this->base64_func) # 检查是否有用户自动定函数
$emsg = base64_encode($data);
else
$emsg = $$this->base64_func($data);
}
$emsg = chunk_split($emsg);
//检查是否content-type是text/plain并且如果没有指定charset,追加缺省的CHARSET
if (preg_match("!^".TEXT."!i", $contenttype) && !preg_match("!;charset=!i", $contenttype))
$contenttype .= ";\r\n\tcharset=".CHARSET ;
$msg = sprintf("Content-Type: %sContent-Transfer-Encoding: %s%s%s%s",
$contenttype.CRLF,
$encoding.CRLF,
((($description) && (BODY != $description))?"Content-Description: $description".CRLF:""),
($disp?"Content-Disposition: $disp".CRLF:""),
CRLF.$emsg.CRLF);
BODY==$description? $this->mimeparts[0] = $msg: $this->mimeparts[] = $msg ;
return sizeof($this->mimeparts);
}
?>
让我们仔细地看一下这个方法(对于其它的大部分方法也将如此):
这个方法使用的参数有:
所附的实际数据($data)
与Content-Description头相应的数据描述(
| 对此文章发表了评论 |
