DELPHI怎么发送HTML格式的MAIL(50)

  • 主题发起人 主题发起人 xf_z
  • 开始时间 开始时间
X

xf_z

Unregistered / Unconfirmed
GUEST, unregistred user!
网上只找到发送纯文本格式的,不知道怎么发送HTML格式的,我收到很多广告邮件,邮件正文中的很多图片都在附件里,不知道DELPHI怎么实现发现HTML格式的邮件??谢谢
 
最主要是对TIDMessage进行“组装”,我只能讲讲大概思路,具体你自己查资料了。1、如果HTML中只有表格,字体等设置,没有插入图片,背景图,音乐等,而且没有附件,那么就简单些 直接设置CONTENTTYPE就可以,如:ContentType:='text/html;charset="gb2312"';ContentType:='text/plain;charset="gb2312"';2、如果在1的情况中包含附件,那么要写成“多部”邮件,第一部HTML内容,第二部分开始附件内容。3、更复杂情况下,HTML中插入图片音乐等,那么就要把链接的磁盘文件以特殊标记的附件方式加到多部邮件中(与普通附件类似,但是标识不同)
 
给你个例子,先把内容组织到一个Tstringlist内stringlist8:= Tstringlist.Create;stringlist8.Add('------dc2dfbf1d0306156d3d73c9479a2bbe3'); stringlist8.Add('Content-Type: text/plain; charset=gb2312'); stringlist8.Add(''); stringlist8.Add('此报表是HTML格式的,请切换到HTML格式来查阅报表。'); stringlist8.Add('饰品销售 ufo2003a@gmail.com'); stringlist8.Add(''); stringlist8.Add('------dc2dfbf1d0306156d3d73c9479a2bbe3'); stringlist8.Add('Content-Type: text/html; charset=gb2312'); stringlist8.Add(''); stringlist8.Add('<marquee behavior=alternate bgcolor=Green><font color=white>欢迎光临!</font></marquee>'); stringlist8.Add('<h2 align= center>'+ biaoshi8.gongsiming + '日营业报表</h2>'); stringlist8.Add('<h3 align= left>报表日期:'+ ss+ '</h3>'); stringlist8.Add('<table align=center border>'); stringlist8.Add('<tr><th>客户名</th><th>销售单号</th><th>交易额</th><th>实付款</th><th>今日欠款</th><th>累计欠款</th></tr>');ss2:= '<tr><td> 合计:</td><td>'+ inttostr(i)+'位</td><td>'+ formatfloat('0.00',zongjiaoyie8)+'</td><td>'+ formatfloat('0.00',zongshifukuan8)+'</td><td><font color=red>'+ formatfloat('0.00',zongqiankuan8* -1)+'</font></td><td>'+ formatfloat('0.00',zongleiqian8)+'</td>'; stringlist8.Add(ss2); stringlist8.Add('</table>');stringlist8.Add('<hr noshade>'); stringlist8.Add('<h6 align= center><font color=Blue>报表结束</font></h6>'); stringlist8.Add(''); stringlist8.Add('------dc2dfbf1d0306156d3d73c9479a2bbe3--'); stringlist8.SaveToFile(mulu8+ 'dayrep.htm');下面是关键内容idmessage1.contenttype:='multipart/alternative; boundary="----dc2dfbf1d0306156d3d73c9479a2bbe3"'; idmessage1.Body.Clear;idmessage1.Body.LoadFromFile(mulu8+ 'dayrep.htm');其他就和普通邮件一样处理了。你可以直接输入内容到idmessage控件内,我先保存文件再读取,是因为这个文件还有其他用途。
 
多人接受答案了。
 
后退
顶部