用PHP发送MIME邮件(三)
mime
MIME 类
在有了这些基础之后,让我们用PHP创建和实现一个MIME邮件类。在我们的PHP库函数中,已经有了编码
所必须的工具。
MIME类必须能够:
增加附件
对每一个独立的请求,对所附的数据进行编码
创建MIME段/头
生成一个包含MIME段/头的完整的邮件
将整个邮件作为字符串返回
用本地的邮件处理程序进行发送(或选择调用一个SMTP邮件处理程序)
这个类叫做MIME_mail。我们将讨论类的方法,在理论与实际的差距中建立起桥梁。(阅读建议:Luis
Argerich的PHP的面向对象编程:开发大型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方法。
//私有:
var $mimeparts = array();
?>
$mimeparts是一个内部数组,包含了邮件信息中各自独立的符合MIME段。请不要在这个类(或派生类)之外操纵它和其它的私有方法/变量。
// 构造函数
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;
}
?>
我们拥有对象的构造函数,它使用"from"和"to"邮件地址,主题和邮件体和头作为参数。对于邮件体部
分,可以给出你将可能输入的正常邮件。最后一个参数是可选的(用户自定义)头。例如,X-Mailer:
MyMailer_1.0。请注意$headers可以是一个数组,包含了将要发给邮件发送程序的不同的头,或者只是某个
特别头的容器。你不能在$headers参数中发送From:
头,如果它被找到,这部分将自动被去掉。你可以象下
面使用多个头:array("X-Mailer: MYMailer_1.0",
"X-Organization: PHPBuilder.com")。
$mimeparts用一个空项(索引0)创建,在后面我们将看到这样用的道理。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

音频输出和输入需要特定的驱动程序和服务才能在Windows11上按预期工作。这些有时最终会在后台遇到错误,从而导致音频问题,如无音频输出、缺少音频设备、音频失真等。如何修复在Windows11上没有响应的音频服务我们建议您从下面提到的修复开始,并逐步完成列表,直到您设法解决您的问题。由于Windows11上的多种原因,音频服务可能无法响应。此列表将帮助您验证和修复阻止音频服务在Windows11上响应的大多数问题。请按照以下相关部分帮助您完成该过程。方法一:重启音频服务您可能会遇

PHP中var关键字的作用和示例在PHP中,var关键字用于声明一个变量。以前的PHP版本中,使用var关键字是声明成员变量的惯用方式,现在已经不再推荐使用。然而,在某些情况下,var关键字依然会被使用。var关键字主要用于声明一个局部变量,并且会自动将该变量标记为局部作用域。这意味着该变量仅在当前的代码块中可见,并且不能在其他函数或代码块中访问。使用var

本篇文章给大家带来了关于JavaScript的相关知识,其中主要给大家介绍了var、let以及const的区别有哪些,还有ECMAScript 和 JavaScript的关系介绍,感兴趣的朋友一起来看一下吧,希望对大家有帮助。

你好,下面是一篇1500字以内的文章,标题为:Youcan'tspecifytargettable'table_name'forupdateinFROMclause-如何解决MySQL报错:无法在FROM子句中更新目标表,需要具体代码示例。在进行MySQL数据库开发过程中,我们有时会遇到以下报错信息:Youcan'tspecify

报错的原因这个错误消息表明,在python代码中,使用了一个对象(由self变量表示),但是该对象没有一个名为k的属性。这可能是由于该对象没有定义这个属性,或者是在代码中类型错误导致该对象不是预期的类型。如何解决要解决这个错误,可能需要进行以下操作之一或多个:检查代码中的错误,确保self变量引用的对象具有名为k的属性。检查代码中的类型错误,确保self变量引用的对象是预期的类型。如果是缺少属性的话,需要在类里定义这个属性使用tryexcept来获取这个错误如果确定了k是类里没有定义的属性,请确

llet、var、const分别代表块作用域变量、函数作用域变量和常量。详细介绍:1、let,用于声明一个块作用域的变量,使用let声明的变量不能在它被声明之前被访问,这就是所谓的暂时性死区;2、var,用来声明变量的关键字,声明的变量是函数作用域或全局作用域的,不受块级作用域的限制;3、const,用来声明一个常量,一旦被赋值就不能再被重新赋值的变量,值在声明后不能被修改等。

使用Java13中的新的HttpClient发送HTTP请求并处理响应HeadersJava13引入了新的HttpClient类,它是一个用于发送HTTP请求和接收响应的现代化API。它提供了一种简洁而灵活的方式来与Web服务进行通信。在本文中,我们将学习如何使用Java13中的新HttpClient类发送HTTP请求,并在收到响应后处理响应头部。我们
