使用客户端使用c#和Lotus Notes发送邮件

时间:2011-12-27 12:59:55

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

我无法找到一个简单的sdk来集成我的c#winform app中的Notes-Client。

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

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

问题: 我没有安装Lotus Notes而不安装它(我可以在不同的非开发人员机器上测试)。显然,您可以通过下载和安装Lotus Notes应用程序获得正确的互操作性的唯一方法。

问题: - 从我读到的内容我知道有两个interop-dll:1代表服务器(Domino),1代表客户端(Notes)。后者仅支持32位版本的客户端。那是对的吗? - 有人有下载链接到我需要的sdk或dll吗?

1 个答案:

答案 0 :(得分:0)

实际上有三个选项:来自cleint代码的COM interop,来自服务器代码的COM interop,或来自客户端代码的OLE类。后者要求Notes客户端不仅要安装,而且在代码发送消息时实际运行,因为OLE调用实际上驱动客户端前端UI来完成工作。你可能不希望这样。

但是,我认为你仍然会更好地放弃你的“而不是安装它”的偏好。除了COM Interop层之外,无论用于Notes / Domino开发的API是什么,都必须在运行代码的机器上安装Notes核心DLL。这意味着您必须在运行代码的框中安装Domino服务器或Notes客户端。 (唯一的例外是Java程序员,他们可以使用一个API来对在Domino服务器上执行的删除API进行IIOP调用。)

是的,我知道你说你要做后期绑定......理论上你可以避免在你的开发机器上安装Notes clode,只要它在你的测试机上就可以了。但在这种情况下,您的测试机器实际上将 您的开发机器用于该项目的这一部分。你最终会在那里调试和修改你的代码,你将在没有编译器帮助的情况下完成它。我没有看到丢失早期绑定的编译时好处只是为了让Lotus Notes脱离你的机器。它确实没有咬人; - )

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