我想发送带有莲花笔记附件的电子邮件。
我尝试了以下代码,显示错误:
错误:
An exception of type 'System.Runtime.InteropServices.COMException' occurred in App_Web_sendemail.aspx.cdcab7d2.s2ysjl2c.dll but was not handled in user code
Additional information: Database open failed (xx.xxx.xxx.xxx!!names.nsf)
代码:
Domino.NotesSession nSession = new Domino.NotesSession();
nSession.Initialize("bbau0862"); //Password
Domino.NotesDatabase nDatabase =
nSession.GetDatabase("xx.xxx.xxx.xxx", "names.nsf");
//If the database is not already open then open it.
if (!nDatabase.IsOpen)
{
nDatabase.Open();
}
Domino.NotesDocument nDocument = nDatabase.CreateDocument();
/*create string variable that will be passed to function. This way we setup To field value*/
string[] recipients =
{"abc@gmail.com", "xyz@gmail.com"};
//setup Form
nDocument.ReplaceItemValue("Form", "Memo");
nDocument.ReplaceItemValue("SentTo", recipients); //To field
nDocument.ReplaceItemValue("Subject", "Message subject"); //message subject
nDocument.ReplaceItemValue("Body", "Something in the message body"); //set body text
nDocument.SaveMessageOnSend = true; //save message after it's sent
nDocument.Send(false, recipients); //send
请告诉我如何在asp.net中发送附有附件的莲花笔记电子邮件。
谢谢。
答案 0 :(得分:2)
您的代码无法打开数据库'names.nsf'。在询问如何发送带附件的电子邮件之前,您需要弄清楚代码无法打开数据库的原因。
对此的一些可能解释是:您无法连接到服务器,您无权访问服务器,或者您无权访问数据库。你需要检查所有这些事情。
在运行代码的计算机上安装了哪些IBM Lotus代码?是安装了Notes客户端代码还是安装了Domino服务器代码?必须是其中一个,如果它是服务器代码,它必须是32位版本,因为IBM不支持Domino的64位COM类。
您需要检查代码是否可以连接到服务器'xx.xxx.xxx.xxx'。客户端和服务器都具有可用于检查的功能。请参阅help for client trace)或help for server trace。
您还需要检查当前用户ID(与您传入Initialize()
方法的密码“bbau0862”对应的用户ID,以及必须是当前ID的用户ID)是否指向 - 客户端或Domino服务器安装的notes.ini文件中的keyfilename或serverkeyfilename条目可以访问服务器'xx.xxx.xxx.xxx'和数据库'names.nsf'。(如果有的话)访问服务器,它应该可以访问names.nsf,但是如果它是某种特殊的id,是专门为你的应用程序提供的,你真的应该检查!这两个都很容易检查使用Notes客户端和该ID。
答案 1 :(得分:-1)
碰巧我用Domino使用c#或powershell得到了这个错误。 我想你尝试在64位应用程序中使用32位多米诺COM组合(64位对于domino客户端不存在)。 这意味着当它在64位PowerShell控制台中抛出此错误时,domino composant将在* 86 powershell控制台中运行。
解决方案我担心是为* 86重新编译项目!
点击此处了解更多详情: Is a COMException of 0x80040154 always 'Class not registered'?
所以我指出你使用多米诺骨牌的经验COM很烦人你最好让你的多米诺骨牌团队提供用户信息的网络服务。
使用domino for exemple force一切都以x86运行。 在客户端应用程序中,COM会在任何c#unintented错误崩溃的同时崩溃,同时Lotus注释用户的客户端(BOSS?)。