• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Openmail

  • Автор темы wowa
  • Дата начала
W

wowa

Добрый день!

Есть кусок кода.
Код:
Dim dbMail As New NotesDatabase( "", "" )
Call dbMail.OpenMail()

Год все работало нормально, тут у одного человека где-то выскочила ошибка. На какой строчке я не знаю.
Ошибка:
Database CN=.../..../...!!mail/....nsf has not been opened yet

Что можно сделать чтобы этой ошибки не было и все-таки из-за чего она возникает?
вроде у человека почта есть, доступ есть и т.д.
 
N

nvyush

Похоже, ошибка где-то ниже. Стоит добавить проверку на dbMail.IsOpen
 
W

wowa

nvy, ну ошибка будет полюбому ниже.
Но почему его почтовая база не открылась?
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
если локейшин не настроен ошибка должна быть полюбому :)
 

VladSh

начинающий
Lotus Team
11.12.2009
1 786
157
BIT
78
wowa
Ошибка иногда возникает даже если локейшен настроен правильно... объяснить это невозможно, этот баг я помню ещё с 5-й версии...
Решение - не юзать глючную OpenMail, а что-то типа этого:
Код:
'Библиотека MailBase
Option Public

Const FND_APPOINTMENT = "Appointment"
Const FND_REPLY = "Reply"
Const FND_MEMO = "Memo"
Const IN_MEMO_SUBJECT = "Subject"
Const IN_MEMO_BODY = "Body"
Const IN_MEMO_SENDTO = "SendTo"


Function ConnectMaildb(Server As String, dbPathFull As String) As NotesDatabase
Dim NDB_Mail As NotesDatabase
On Error Goto ErrH

'Подключаемся как к обычной БД, чтобы обойти сообщение "БД сейчас не может быть открыта..." ("Db has not been opened yet")
Set NDB_Mail = New NotesDatabase(Server, dbPathFull)

If NDB_Mail.IsOpen Then
Set ConnectMaildb = NDB_Mail
Exit Function
Else
Error 4063, {Почтовая база "} + dbPathFull + {" на сервере "} + Server + {" не может быть открыта... Проверьте настройки текущего места вызова!}
End If

ErrH:
If Err = 4060 Then
ErrMSG$ = {Отсутствует доступ к почтовой базе "} + dbPathFull + {" на сервере "} + Server + {"... Измените текущее место вызова!}
Else
ErrMSG$ = Error$ & " (" & Err & "), in line: " & Erl & "!"
End If

Messagebox ErrMSG$, 64, "Lotus Notes..."
Err = 0
Exit Function
End Function


Function GetMaildb() As NotesDatabase

userMAIL = Evaluate(|@MailDbName|)

Set GetMaildb = ConnectMaildb(userMAIL(0), userMAIL(1))

End Function
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!