使用.NET通过Lotus Notes发送电子邮件时出现“数据库打开失败”异常

时间:2010-10-15 18:19:51

标签: .net lotus-notes

我正在开展一项任务,我的.net应用程序应该使用Lotus Notes客户端(非SMTP)使用Dominos.dll发送带有.NET的电子邮件。我也能发邮件。但问题来自我关闭我的Lotus Notes邮件客户端并尝试运行我的不提供邮件的应用程序。原因,我认为它们存储在“外发邮件”中。再次,当我通过输入我的用户名和密码重新打开我的Lotus Notes客户端时,已经发送了“发送邮件”中的邮件。 一个绅士对她建议我,我连接到我的本地副本发送电子邮件,并告诉我将我的数据库名称更改为服务器数据库文件。我改变了与服务器的连接现在我收到此错误“数据库打开失败”。有趣的是,如果我使用“names.nsf”文件,我不会得到例外。但如果我改为我的“username.nsf”它无法连接并给我这个错误。但是,如果我使用“names.nsf”文件,当我关闭莲花笔记并运行我的应用程序时,邮件不会被传递。

以下是我用来发送电子邮件的代码。

    oNotesSession = new NotesSession();
oNotesSession.Initialize("******"); //password
oNotesDatabase = oNotesSession.GetDatabase("servername", "names.nsf", false);

if (!oNotesDatabase.IsOpen)
oNotesDatabase.Open();

oNotesDocument.ReplaceItemValue("Form", "Memo");
oNotesDocument.ReplaceItemValue("SendTo", strToAddress);
oNotesDocument.ReplaceItemValue("body", mData.Body);
oNotesDocument.ReplaceItemValue("Subject", mData.Subject);
oNotesDocument.ReplaceItemValue("$KeepPrivate", "1");
oNotesDocument.ReplaceItemValue("postDate", DateTime.Now.ToShortDateString());
oItemValue = oNotesDocument.GetItemValue("SendTo");
oNotesDocument.Send(false, ref oItemValue);

1 个答案:

答案 0 :(得分:0)

确保您可以使用通过.NET使用的相同登录名打开同一个数据库。换句话说,只需打开Notes客户端并尝试在服务器上打开该username.nsf文件。您可能无权使用该服务器。

你绝对不想发送来自names.nsf的电子邮件,(但理论上它仍然有用。)

BTW,在你调用oNotesDatabase.Open()之后;您需要创建Notes文档:

oNotesDocument = oNotesDatabase.CreateDocument();