我尝试了许多版本的MAPISend,但我每次都在一个地方得到错误。MAPILogon返回错误代码1。
dwRet := MapiLogon(Handle,
nil,
nil,
MAPI_DIALOG or MAPI_NEW_SESSION,
0, @MAPI_Session);
我试过用“MAPISend组件”,这个代码:
http://prog.hu/tudastar/60044-6/Delphi-Email+csatolt+file+thunderbird.html
和2个其他的。
有趣的是,Acrobat Reader可以使用MAPI附加到电子邮件功能,“发送”“在邮件中”上下文菜单也可以工作。
我不明白为什么它不工作,在我的机器(Win7)它工作正常。
然后我失败的机器有WinXP操作系统,他们使用雷鸟。
如何才能成功登录MAPI?
谢谢:dd
4条答案
按热度按时间laik7k3q1#
我想我发现了问题。问题是, Delphi 需要一个名为MAPI的注册表值在“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows消息子系统”下,如果这个不存在,它会发送1个错误代码给你,这是混淆的基础。
此值必须为字符串。系统管理员写入了DWORD,这导致了问题。
感谢您的帮助:日
zaq34kh62#
我正在使用RapWare组件http://www.rapware.nl/
他的。
斯坦科。
kqqjbcuj3#
我不确定是否有任何Delphi特有的问题,但是您不需要在调用MAPISendMail之前调用MAPILogon。如果您调用了,我就不会检查返回值。这就是Acrobat Reader工作正常而您的SMAPI客户端不工作的原因。
1mrurvl14#
我发现您可能还必须在两个位置添加MAPI字符串值1:
后者适用于在64位Windows上运行的32位应用:
我在D2007中使用Jedi工具SendMail时不需要这个,但在 Delphi 10+中使用LMDTool的SendMail时需要这个(我想甚至可能是Delphi XE和以后的版本)。