Delphi :MAPILOGON错误代码1

uelo1irk  于 2023-03-18  发布在  Go
关注(0)|答案(4)|浏览(125)

我尝试了许多版本的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

laik7k3q

laik7k3q1#

我想我发现了问题。问题是, Delphi 需要一个名为MAPI的注册表值在“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows消息子系统”下,如果这个不存在,它会发送1个错误代码给你,这是混淆的基础。
此值必须为字符串。系统管理员写入了DWORD,这导致了问题。
感谢您的帮助:日

zaq34kh6

zaq34kh62#

我正在使用RapWare组件http://www.rapware.nl/
他的。
斯坦科。

kqqjbcuj

kqqjbcuj3#

我不确定是否有任何Delphi特有的问题,但是您不需要在调用MAPISendMail之前调用MAPILogon。如果您调用了,我就不会检查返回值。这就是Acrobat Reader工作正常而您的SMAPI客户端不工作的原因。

1mrurvl1

1mrurvl14#

我发现您可能还必须在两个位置添加MAPI字符串值1:

  1. HKEY本地计算机\软件\Microsoft\Windows消息传递子系统
  2. HKEY本地计算机\软件\WOW6432节点\Microsoft\Windows消息传递子系统
    后者适用于在64位Windows上运行的32位应用:
    我在D2007中使用Jedi工具SendMail时不需要这个,但在 Delphi 10+中使用LMDTool的SendMail时需要这个(我想甚至可能是Delphi XE和以后的版本)。

相关问题