谢谢wxsan,非常感谢!其实我是在做邮件客户端。用Indy控件做的。使用Webbrowser作为编辑器编辑邮件正文,然后发送。但去网页上收看时,却发现所发的邮件内容要么是乱码,要么就是把HTML代码显示出来了。如:我在webbrowser中输入一句话作为正文: this is a test mail.发送时的代码为: With Msg do begin Body.Clear; Body.Add((webbrowser1.Document as IHTMLDocument2).body.outerHTML) ; From.Text := MailAccount.EmailAddress; ReplyTo.EMailAddresses := MailAccount.EmailAddress; Recipients.EMailAddresses := edtRecipients.Text; { To: header } Subject := edtSubject.Text; { Subject: header } Priority := TIdMessagePriority(cbbPriority.ItemIndex); { Message Priority } CCList.EMailAddresses := edtCc.Text; {CC} ReceiptRecipient.Text := ''; end; ..... With SMTP do begin Connect; Send(IdMsgSend); Disconnect; end; ..... 但是发送成功后,去网页收到的却是不正常的。收到的结果为:<BODY>this is a test mail.</BODY>怎么看上去像是浏览器直接把邮件下文的HTML代码显出来了? 有哪位高手赐教一下,,不胜感激。
ExecWB这个函数如何能做到, 能说的详细点吗?
with Msg do begin ... contenttype := 'text/html'; ... end;如果是普通的不带有附件的邮件,可以直接指定类型为text/html就可以了
// 注意要引用mshtml单元,否则编译不了
1. 保存为文本文件:
IHtmlDocument2(WebBrowser1.Document).Body.outerText
2. 保存为html
IHtmlDocument2(WebBrowser1.Document).Body.outerHTML
With Msg do
begin
Body.Clear;
Body.Add((webbrowser1.Document as IHTMLDocument2).body.outerHTML) ;
From.Text := MailAccount.EmailAddress;
ReplyTo.EMailAddresses := MailAccount.EmailAddress;
Recipients.EMailAddresses := edtRecipients.Text; { To: header }
Subject := edtSubject.Text; { Subject: header }
Priority := TIdMessagePriority(cbbPriority.ItemIndex); { Message Priority }
CCList.EMailAddresses := edtCc.Text; {CC}
ReceiptRecipient.Text := '';
end;
.....
With SMTP do
begin
Connect;
Send(IdMsgSend);
Disconnect;
end;
.....
但是发送成功后,去网页收到的却是不正常的。收到的结果为:<BODY>this is a test mail.</BODY>怎么看上去像是浏览器直接把邮件下文的HTML代码显出来了?
有哪位高手赐教一下,,不胜感激。
能说的详细点吗?
begin
...
contenttype := 'text/html';
...
end;如果是普通的不带有附件的邮件,可以直接指定类型为text/html就可以了