Получение исключения «Ошибка открытия базы данных» при отправке электронной почты через лотос с помощью .NET - PullRequest
0 голосов
/ 15 октября 2010

Я работаю над задачей, в которой мое приложение .net должно отправлять электронные письма с помощью клиента Lotus Notes (НЕ SMTP) с .NET с помощью Dominos.dll. Я также могу отправлять письма. Но проблема возникает, когда я закрываю свой почтовый клиент 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 голосов
/ 15 октября 2010

Убедитесь, что вы можете открыть ту же базу данных, используя тот же логин, который вы используете через .NET. Другими словами, просто откройте клиент Notes и попробуйте открыть этот файл username.nsf на сервере. Скорее всего, у вас нет прав на этот сервер.

Вы определенно не хотите отправлять электронные письма от names.nsf, (но теоретически это все равно будет работать.)

Кстати, после вашего вызова oNotesDatabase.Open (); вам нужно создать документ Notes:

oNotesDocument = oNotesDatabase.CreateDocument();
...