精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>〓〓..网络程序开发..〓〓>>网络高级应用>>浅谈MIME编码格式

主题:浅谈MIME编码格式
发信人: garfieldmao()
整理人: winsy(2003-03-09 13:23:08), 站内信件
最近见有人问怎样用Winsock发送带附件的Email,我看到关于这方面的资料还很难找到,于是决定自己写一篇

。写得不好大家不要怪我啊 :P

用FoxMail查看一封带附件的Email原件,可以看到一个Email的头信息,如下:
Received: by mx4.163.com (Postfix, from userid 60001)
id 186A11D58FCF1; Mon,  9 Jul 2001 20:56:14 +0800 (CST)
Message-Id: <[email protected]>
' 上面的信息是发信的服务器自动加上去的
MIME-Version: 1.0
'  MIME格式的版本
Content-Type: Multipart/Mixed;
  boundary="Boundary-=_mQlkpuZPqdEfurNVrTtGDEUtlkhD"
' 上面两行是值得注意的两行,他的一行的
' Content-type: Multipart/Mixed;
' 说明这个邮件的正文类型是 多个部分/混合 的,也就是邮件分了几个部分(邮件文本内容和附件)
' 第二行:
' Boundary="Boundary-=_mQlkpuZPqdEfurNVrTtGDEUtlkhD"
' 说明了分隔符,各个部分之间就用 Boundary-=_mQlkpuZPqdEfurNVrTtGDEUtlkhD 分割开来。
' 好,重要的都说了

Date: Mon, 9 Jul 2001 20:56:14 +0800 (CST)
From: "xxxx" <[email protected]>
To: [email protected]
Subject: xxxxxxxxxx
X-Priority: 3
'  顺带一提,上面的X-Priority: 3 是表示邮件的3个重要程度,3最大。

' 上面空一行,表示邮件头信息已经到此结束。
--Boundary-=_mQlkpuZPqdEfurNVrTtGDEUtlkhD
'  这里开始了第一个部分
Content-Type: Text/Plain
'  这里声明第一个部分的编码格式是文本格式。
Content-Transfer-Encoding: 7bit
'  这里声明正文的传送编码是 7bit,不管它了,反正下面的是文本内容

'  上面空一行,开始一部分的内容
Dear xxx:
xxyyzzz
xxxx

====================================
sms.163.com--网易短信

无论你身在何处,也不管移动或是联通,网易短信都能一网打尽!

'  上面又空一行
--Boundary-=_mQlkpuZPqdEfurNVrTtGDEUtlkhD
'  分隔符,开始第二部分的正文
Content-Type: text/plain
'  第二部分仍然是文本类型
Content-Transfer-Encoding: base64
'  但是是用Base64编码,可以用上次我发出来的函数解码。
Content-Disposition: attachment; filename="C:\My Documents\新文件夹\新建 文本文档.txt"
'  正文部署为 attachment,表示这个部分是一个附件
'  filename="C:\My Documents\新文件夹\新建 文本文档.txt"
'  这是附件在原来机器上的位置

'空一行,开始第二部分正内容
DowNCCwos3YDQr2psWutrzW09LissjX1Ly6DQoNCjIwMDEtMDctMDYgMjE6M
DY6NDkg0KHZuw0K9qbFrtbT0uKyyNfUvLqjrLb4ztLPtdPQsbvFsKGtoa0NC
'上面的都是经过Base64编码后的内容,这里只是一部分。

'空一行,表示第二部分正文结束。
--Boundary-=_mQlkpuZPqdEfurNVrTtGDEUtlkhD--
'分隔符,看看有什么不同,就是最后多了 "--" 两个减号,说明这里已经是最后一个部分,下面没有了^_^。

说了这么多,应该明白了吧!?我也是知道这么多,难免出错。。
按这种格式编码后发送邮件就可以了。
好了,玩Game……
对了,如果哪位兄弟知道我上面问那个二进制文件的问题,麻烦解答一下,呵呵,不行了,久了没用VB。

[关闭][返回]