Delphi:MAPILOGON 错误代码 1

发布于 2024-09-17 20:44:58 字数 622 浏览 13 评论 0原文

我尝试了许多版本的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

泼猴你往哪里跑 2024-09-24 20:44:58

我想我发现了问题。
问题是,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

可是我不能没有你 2024-09-24 20:44:58

我正在使用 RapWare 组件,http://www.rapware.nl/

Hth。

斯坦科。

I am using RapWare components, http://www.rapware.nl/

Hth's.

Stanko.

蝶舞 2024-09-24 20:44:58

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

  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Messaging Subsystem
  2. HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows Messaging Subsystem

后者适用于在 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:

  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Messaging Subsystem
  2. HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows Messaging Subsystem

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).

鲜血染红嫁衣 2024-09-24 20:44:58

我不确定是否有任何特定于 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文