delphi – 以HTML格式发送电子邮件

前端之家收集整理的这篇文章主要介绍了delphi – 以HTML格式发送电子邮件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目前我们正在使用MAPI从我们的应用程序发送纯文本电子邮件.当用户调用函数时,我们指定对话框标志,以便电子邮件显示在他们的电子邮件客户端中,然后他们可以修改并发送它.

我们想要修改电子邮件并以HTML格式发送.
根据此链接,MSDN链接MAPI不适用于此http://support.microsoft.com/kb/268440

我在ExpertsExchange上看到一篇文章说你可以使用MAPI来做这件事,但是我无法让这个例子与Outlook一起工作(还没有试过任何其他客户端)

procedure ShowMailDlg(ToName,Address,HTMLMessage: string);
var
    li: integer;
    lMessage: TMapiMessage;
    lRecipArray: array of TMapiRecipDesc;
    lREs: DWord;
begin
    SetLength(lRecipArray,1);
    lRecipArray[0].ulRecipClass:=MAPI_TO;
    lRecipArray[0].lpszName:=pChar(ToName);
    lRecipArray[0].lpszAddress:=pChar(Address);
    lMessage.ulReserved:=0;
    lMessage.lpszSubject:=nil;
    lMessage.lpszNoteText:=pChar(HTMLMessage);
    lMessage.lpszMessageType:= nil;//pChar('HTML');
    lMessage.lpszDateReceived:=nil;
    lMessage.lpszConversationID:=nil;
    lMessage.flFlags:=0;
    lMessage.lpOriginator:=nil;
    lMessage.nRecipCount:=length(lRecipArray);
    lMessage.lpRecips:=PMapiRecipDesc(lRecipArray);
    lMessage.nFileCount:=0;
    lMessage.lpFiles:=PMapiFileDesc(nil);
    lRes:=MapiSendMail(0,lMessage,MAPI_DIALOG,0);
end;

任何人都有任何想法我怎么能这样做.我可以自动化Outlook但我想保持它与电子邮件客户端(因此MAPI)相当独立

谢谢

更新:感谢大家的建议.该功能的问题并非使用频繁,因此要求用户配置SMTP详细信息并不是一个真正的选择.我想我们会坚持使用纯文本电子邮件.

谢谢

解决方法

MAPI不支持HTML格式的邮件.从 Microsoft开始:“扩展消息传递应用程序编程接口(MAPI)不应用于生成HTML格式的消息.另外,请考虑使用Microsoft Outlook对象模型,CDONTS,CDOSYS,CDOEX或第三方SMTP控件.”

我会回应有关通过Indy发送的评论.我发布了一个单元,可以用简单的here将Indy发送到HTML上,或者随意编写自己的单元.如果您真的想要使消息可编辑,请尝试WPTools和Indy的组合. WPTools对HTML标记有很好的支持,然后你可以通过Indy发送结果消息.

我对Synapse没有任何经验,所以我不能说这个项目有多容易/多难.

猜你在找的Delphi相关文章