2010-10-15 74 views
0

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

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

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

回答

0

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

你肯定不希望从NAMES.NSF发送电子邮件,(但理论上仍然可以工作。)

顺便说一句,您的来电oNotesDatabase.Open后();您需要创建Notes文档:

oNotesDocument = oNotesDatabase.CreateDocument();