如何快速判断一封电子邮件是HTML格式的?(100分)

  • 主题发起人 主题发起人 shyj
  • 开始时间 开始时间
可以用预览的方法啊
 
收到的全文中其中一部分的头带有:Content-Type: text/html;
 
但是oe这种通常是把内容当作一个附件来发送的,它的邮件头好象没有content-type:text/html这种标志吧。
像我用oe发了一封信,邮件头信息是这样的。
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0004_01BFECA5.937C0240"
判断邮件的附件,可能比较现实一点。
 
对于html格式的邮件,我使用NMPOP3控件接收老出问题.怎么回事.....
 
一般是附件.
 
没错,有附件的情况是很难很快判断的。
(html + 附件) 与 (plaintext + 附件)的
Content-Type是一样的。
 
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0004_01BFECA5.937C0240"

上面的意思是邮件分多个部分,正文中用字符串“----=_NextPart_000_0004_01BFECA5.937C0240”
区分各个部分,每个部分都有头,只要找到 Content-Type: text/html 就是了
(一个空行分开各个部分里面的头和正文)
 
可以先下在邮件内容,解码后或解码正文内容的时候,通过识别Html文本内容中
的标识性字符串,如<html>, 来判别。只是速度上可能稍稍慢了些。
 
可以从x-Mailer来判断,
if ( 是OE的邮件) and
(第一部分是text/plain)
(第二部分使text/html) then
begin
去掉第一部分;
处理第二部分的src=cid等的特殊处理;
把第二部分当HTML来显示;
end
else
if GetContentType = "TEXT/HTML" then
作为html显示
else
begin
转换成HTML格式,然后用HTML显示;
end;
 
多人接受答案了。
 
后退
顶部