解码mime邮件的代码

 

function decode_mime_string ($string) {
$pos = strpos($string, '=?');
if (!is_int($pos)) {
return $string;
}

$preceding = substr($string, 0, $pos); // save any preceding text

$search = substr($string, $pos+2, 75); /* the mime header spec says this is the longest a single encoded word can be */
$d1 = strpos($search, '?');
if (!is_int($d1)) {
return $string;
}

$charset = substr($string, $pos+2, $d1);
$search = substr($search, $d1+1);

$d2 = strpos($search, '?');
if (!is_int($d2)) {
return $string;
}

$encoding = substr($search, 0, $d2);
$search = substr($search, $d2+1);

$end = strpos($search, '?=');
if (!is_int($end)) {
return $string;
}

$encoded_text = substr($search, 0, $end);
$rest = substr($string, (strlen($preceding . $charset . $encoding . $encoded_text)+6));

switch ($encoding) {
case 'Q':
case 'q':
$encoded_text = str_replace('_', '%20', $encoded_text);
$encoded_text = str_replace('=', '%', $encoded_text);
$decoded = urldecode($encoded_text);

if (strtolower($charset) == 'windows-1251') {
$decoded = convert_cyr_string($decoded, 'w', 'k');
}
break;

case 'B':
case 'b':
$decoded = urldecode(base64_decode($encoded_text));

if (strtolower($charset) == 'windows-1251') {
$decoded = convert_cyr_string($decoded, 'w', 'k');
}
break;

default:
$decoded = '=?' . $charset . '?' . $encoding . '?' . $encoded_text . '?=';
break;
}

return $preceding . $decoded . decode_mime_string($rest);
} // decode_mime_string()

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

时间: 2024-10-29 14:03:25

解码mime邮件的代码的相关文章

在PHP中发送MIME邮件

综述:编写邮件系统或邮件列表程序是PHP应用的一个大的分支,既管PHP提供了简单的用于发email的函数,但在实际应用中,会涉及到发送带附件的邮件.测试用户输入的email地址的有效性,尤有必要用专门的章节来讲述. MIME是什么? MIME表示多用途Internet邮件扩允协议.MIME扩允了基本的面向文本的Internet邮件系统,以便可以在消息中包含二进制附件. RFC822在消息体的内容中做了一点限制:就是只能使用简单的ASCII文本.所以,MIME信息由正常的Internet文本邮件组

C#通过POP3获取邮件的代码(正文和附件)_实用技巧

使用方法: 获取第1封邮件 复制代码 代码如下: Zgke.Net.POP3 _Popt = new Zgke.Net.POP3("192.168.0.1", 110); DataTable _Mail = _Popt.GetMail("zk", "zk", 1); 返回DataTable 数据内容为 Type为类型 Text为文字 如果是附件 为byte[] Name 如果是附件里存放的为文件名  下面是全部的类 复制代码 代码如下: usin

asp.net C# 支持HTML格式、带附件、中文发送者、密送、抄送邮件群发代码

asp教程.net c# 支持html格式.带附件.中文发送者.密送.抄送邮件群发代码 //web.config中可以这样设置 <system.net>         <mailsettings>       <smtp>         <network host="hostname" port="25" username="a@163.com" password="xxxx"/&

java利用QQ邮件服务器发邮件的代码 谁有 各位大神谢谢了

问题描述 java利用QQ邮件服务器发邮件的代码 谁有 各位大神谢谢了 ...................................................................... 解决方案 //发送邮件 try { Properties prop = new Properties(); //设置服务器地址 prop.put("mail.smtp.host", "smtp.qq.com"); //设置需要身份验证 prop.put(&

通过JS正则表达式实现验证邮件的代码

导读:在Javascript中验证邮件的代码十分常见,网上能找到许多,主要是通过JS的正则表达式来实现,本文主要讨论这一十分常见的代码,适合新手阅读学习 白天总是玩着不看书,这两晚却很神奇地因为睡不着起来看书,正则表达式.很好玩的东西.<Javascript 高级程序设计>是本好书,写得很系统.不过,在正则表达式那一章,看到验证电子邮件那里,似乎把正式表达式给写错了,也被我不小心发现了. 原代码是这样的: function isValidMail(sText){var reMail = /^(

用PHP发送MIME邮件(六)

mime 值得说明的其它两个方法是print_mail()和send_mail(),两个都使用了$force参数.print_mail()输 出整个邮件信息,send_mail()使用PHP的mail()函数发送信息.可选的,send_mail()使用了一个SMTP对象 和它的发送方法(由用户指定)来发送邮件. 结论 创建一个符合MIME的信息不象看上去那么复杂,可以通过一个相当简单的方式来实现.MIME消息可以给 许多的站点带来新气象. 我们在上面开发的类覆盖了核心思想,并且它可以被扩展,唯一

用PHP发送MIME邮件(三)

mime MIME 类 在有了这些基础之后,让我们用PHP创建和实现一个MIME邮件类.在我们的PHP库函数中,已经有了编码 所必须的工具. MIME类必须能够: 增加附件 对每一个独立的请求,对所附的数据进行编码 创建MIME段/头 生成一个包含MIME段/头的完整的邮件 将整个邮件作为字符串返回 用本地的邮件处理程序进行发送(或选择调用一个SMTP邮件处理程序) 这个类叫做MIME_mail.我们将讨论类的方法,在理论与实际的差距中建立起桥梁.(阅读建议:Luis Argerich的PHP的

用PHP发送MIME邮件(一)

mime 已经厌倦了给你的朋友和客户发送那些单调乏味的文本通知和信件了吗?曾经考虑过发送附件或在邮中嵌入HTML吧 答案就是MIME.接下来的几页解释了MIME的基础知识,创建符合MIME的信息,然后用一个可以工作的PHP 类结束,这个类实现了发送符合MIME邮件.注意对调用脚本,调用者等等的引用表示使用了将要开发的类的 脚本,客户程序/MUA等等表示邮件阅读的客户程序或邮件使用代理程序. 一些MIME基础 MIME表示多用途Internet邮件扩允协议.MIME扩允了基本的面向文本的Inter

帮忙调试一邮件服务器代码

问题描述 代码运行请诸位C#高手帮忙调试一简单邮件服务器代码.生成的代码运行出错.说程序"遇到问题需要关闭--请将此问题报告给Microsoft--" 解决方案 解决方案二:对不起,没有这个资源解决方案三:privatestaticvoidSend(DateTimeNow,stringAwardNumber,stringMailName){stringSubject="您的邮件标题!";StringBuilderContent=newStringBuilder();