c# - 使用 C# 发送邮件,使用客户端发送 Lotus Notes

标签 c# .net com-interop lotus-notes

我在从我的 c# winform 应用程序中找到一个简单的 sdk 来集成 Notes-Client 时遇到了麻烦。

要求: 在 c# WinForm 应用程序中,我必须通过电子邮件发送通知。这些电子邮件应存储在最终用户邮件客户端的“已发送”文件夹中。收到邮件的人应该看到邮件不是来自应用程序,而是其他人的邮箱。

方法: 由于我需要将电子邮件存储在最终用户的已发送文件夹中,我想我应该使用一些 Notes-api 并让客户端应用程序负责存储和发送电子邮件。或者使用后期绑定(bind)。

问题: 我没有安装 Lotus Notes 而不是安装它(我可以在不同的非开发人员机器上测试)。显然,获得正确的 interop-dll 的唯一方法是下载并安装 Lotus Notes 应用程序。

问题: - 根据我的阅读,我了解到有两个 interop-dll:1 个用于服务器 (Domino),1 个用于客户端 (Notes)。后者只支持32位版本的客户端。那是对的吗? - 谁有我需要的 sdk 或 dll 的下载链接?

最佳答案

实际上有三种选择:来自客户端代码的 COM 互操作、来自服务器代码的 COM 互操作,或者来自客户端代码的 OLE 类。后者要求不仅安装 Notes 客户端,而且在您的代码发送消息时实际运行,因为 OLE 调用实际上驱动客户端前端 UI 来完成工作。你可能不想要那个。

但是,我认为您最好还是放弃“宁愿不安装”的偏好。除了 COM Interop 层之外,您还必须在运行代码的机器上安装 Notes 核心 DLL,无论您使用什么 API 进行 Notes/Domino 开发。这意味着您必须在运行代码的机器上安装 Domino 服务器或 Notes 客户端。 (唯一的异常(exception)是 Java 程序员,他们可以使用 API 调用 IIOP 来调用在 Domino 服务器上执行的删除 API。)

是的,我知道你说过你会做后期绑定(bind)...理论上你可以避免在你的开发机器上安装 Notes clode,只要它在你的测试机器上。但在那种情况下,您的测试机将真正成为项目这部分的开发机。您最终将在那里调试和修改您的代码,并且您将在没有编译器帮助的情况下完成这些工作。我不认为为了让 Lotus Notes 远离您的机器而失去早期绑定(bind)的编译时好处有什么意义。它不咬人,真的 ;-)

至于你的具体问题,唯一可用的客户端代码是32位的,核心的DLLS和COM接口(interface)都是自带的。试用客户端下载可用here .然而,您真正应该做的是免费下载 Domino Designer here ,其中包括客户端代码,还包括所有开发人员帮助文件和示例。作为替代方案,您可以安装 64 位 Domino 服务器代码而不是客户端代码,并且确实存在 64 位 COM 接口(interface)——但是 IBM 不支持它们,并且有些东西不起作用。

关于c# - 使用 C# 发送邮件,使用客户端发送 Lotus Notes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8644955/

相关文章:

c# - 在字典 C# 中排序

c# - HttpWebRequest Response Stream 只返回 64k 的数据

c# - 来自 WCF 服务的方法未显示在客户端应用程序中

c# - 清理 CommandBar 按钮

windows - 在所有未使用的情况下,进程外 COM 服务器最终是否应该停止?

c# - 在 Xamarin 中使用 Azure AD 的跨应用 SSO

javascript - 有什么方法可以让这个 jQuery 在 IE8 中工作吗?

.net - 写入远程 MSMQ

.net - 传输层安全 (TLS) 示例?

c# - x86 与在 x64 上编译的 COM Interop