Openmail

Тема в разделе "Lotus - Программирование", создана пользователем wowa, 31 мар 2010.

  1. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Добрый день!

    Есть кусок кода.
    Код (Text):
    Dim dbMail As New NotesDatabase( "", "" )
    Call dbMail.OpenMail()
    Год все работало нормально, тут у одного человека где-то выскочила ошибка. На какой строчке я не знаю.
    Ошибка:
    Что можно сделать чтобы этой ошибки не было и все-таки из-за чего она возникает?
    вроде у человека почта есть, доступ есть и т.д.
     
  2. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Похоже, ошибка где-то ниже. Стоит добавить проверку на dbMail.IsOpen
     
  3. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    nvy, ну ошибка будет полюбому ниже.
    Но почему его почтовая база не открылась?
     
  4. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    если локейшин не настроен ошибка должна быть полюбому :)
     
  5. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    wowa
    Ошибка иногда возникает даже если локейшен настроен правильно... объяснить это невозможно, этот баг я помню ещё с 5-й версии...
    Решение - не юзать глючную OpenMail, а что-то типа этого:
    Код (Text):
    'Библиотека 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
     

Поделиться этой страницей