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