我们的客户大多使用MS Outlook,但有时其他客户也无法通过代码创建新的邮件窗口。
我们也试图实现mailto:alternative,但使用attachment =“C:\ filename.txt”失败。
使用发送到邮件收件人右键单击文件主要是无论如何,但我从未找到过通过代码执行此操作的方法。
有没有其他方法可以使用文件附件创建新邮件?
我们也经历过整个应用程序崩溃,因为mapi代码,windows错误经常会出现如下错误:
Faulting module name: dhcpcsvc.DLL, version: 6.1.7600.16385, time stamp: 0x4a5bd9b5
Exception code: 0xc0000005
Fault offset: 0x00001d00
Faulting process id: 0x868
Faulting application start time: 0x01ca7fbc86a3e836
Faulting application path: C:\Program Files (x86)\Microsoft Office\OFFICE11\OUTLOOK.EXE
Faulting module path: C:\Windows\system32\dhcpcsvc.DLL
Report Id: c60fa358-ebaf-11de-8b4f-0026b9486d93
答案 0 :(得分:0)
有没有其他方法可以使用文件附件创建新邮件?
是。您可以使用Indy直接发送:TIdSMTP + TIdMessage + TIdAttachmentFile。
示例代码:
IdMessage := TIdMessage.Create(nil);
IdSMTP := TIdSMTP.Create(nil);
try
IdMessage.Subject := 'YourMessageSubject';
IdMessage.Recipients := 'targetmail1@example.com,targetmail2@example.com';
IdMessage.CCList := ...
IdMessage.BccList := ...
IdMessage.Body.Text := 'YourMessageText';
IdSMTP.Host := 'smtp.example.com';
i := 1;
TIdAttachmentFile.Create(IdMessage.MessageParts, TFileName('YourAttachmentFileName'));
try
IdSMTP.Connect;
IdSMTP.Send(IdMessage);
finally
IdSMTP.Disconnect;
end;
finally
IdMessage.Free;
IdSMTP.Free;
end;
答案 1 :(得分:0)
请参阅:How can I simulate ‘Send To...’ with Delphi?
该代码显示了如何使用已附加的文件打开新的“撰写邮件”窗口,模拟“发送到...”shell上下文菜单的操作系统默认操作。