发信人: 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。 |
|