Delphi:MAPILOGON 错误代码 1
我尝试了许多版本的 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操作系统,他们使用Thunderbird。
我可以做什么才能成功登录 MAPI?
谢谢: DD
I tried with many versions of MAPISend, but I everytime got error in one place.
The MAPILogon returns with errorcode 1.
dwRet := MapiLogon(Handle,
nil,
nil,
MAPI_DIALOG or MAPI_NEW_SESSION,
0, @MAPI_Session);
I tried with "MAPISend component", this code:
http://prog.hu/tudastar/60044-6/Delphi-Email+csatolt+file+thunderbird.html
and 2 of others.
Interesting, that Acrobat Reader CAN use the MAPI with Attach to email function, and the "Send" "In Mail" context menu also working.
I don't understand why it isn't working, in my machine (Win7) it is working fine.
Then machines where I failed have WinXP OS, and they used Thunderbird.
What I can do to successfully logon into MAPI?
THanks:
dd
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我想我发现了问题。
问题是,Delphi 需要一个名为 MAPI 的注册表值
“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows 消息传递子系统”
如果不存在,它会向您发送 1 个错误代码,这是什么造成混乱的原因。
该值必须是字符串。系统管理员写入了 DWORD,这导致了问题。
感谢您的帮助:
DD
I think I found the problem.
The problem, that Delphi needs a Registry value named MAPI under
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Messaging Subsystem"
If this not present, it send 1 error code to you what is the base of the confusion.
This value must be string. The sysadmin wrote DWORD, and this caused the problem.
Thanks for your help:
dd
我正在使用 RapWare 组件,http://www.rapware.nl/
Hth。
斯坦科。
I am using RapWare components, http://www.rapware.nl/
Hth's.
Stanko.
我发现您可能还必须在两个位置添加 MAPI 字符串值 1:
后者适用于在 64 位 Windows 上运行的 32 位应用程序:
我没有在 D2007 中使用 Jedi 工具 SendMail 不需要这个,但在 Delphi 10+ 中使用 LMDTool 的 SendMail 则需要这个(甚至可能对于 Delphi XE 和我认为的更高版本)。
I found you may also have to add the MAPI string value of 1 in two places:
The latter for 32bit apps running on 64bit Windows:
I didn't need this for using the Jedi tools SendMail in D2007 but did for using LMDTool's SendMail in Delphi 10+ (probably even for Delphi XE and later I assume).
我不确定是否有任何特定于 Delphi 的问题,但在调用 MAPISendMail 之前不需要调用 MAPILogon。如果你这样做,我不会检查返回值。这就是为什么 Acrobat Reader 可以工作而 SMAPI 客户端却不能工作的原因。
I'm not sure about any Delphi-specific issues, but you don't need to call MAPILogon before calling MAPISendMail. If you do, I wouldn't check the return value. That's why Acrobat Reader was working and your SMAPI client was not.