Vba & Notes

Тема в разделе "Lotus - Программирование", создана пользователем NickProstoNick, 20 окт 2009.

  1. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Всем привет.
    Есть задача отсылать письма из Access.
    Решино было использовать COM.
    Вопрос вот в чем... как отсылать письмо прозрачно для пользователя?
    В ниже приведенном коде почти все работает как надо... кроме того что запускается Notes-клиент.
    Хотя по идее не должен бы. Что не правильно?

    Код (Text):
        Dim Maildb As Object
    Dim UserName As String
    Dim MailDbName As String
    Dim MailDoc As Object
    Dim Session As Object

    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set Session = Nothing

    Set Session = CreateObject("Notes.NotesSession")
    UserName = Session.UserName
    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"

    Set Maildb = Session.GETDATABASE("", MailDbName)

    If Maildb.IsOpen = False Then
    Maildb.OPENMAIL
    End If


    Set MailDoc = Maildb.CREATEDOCUMENT
    MailDoc.Form = "Memo"
    MailDoc.sendto = SendTo
    MailDoc.Subject = "TEST COM"
    MailDoc.Body = "User Text............"
    MailDoc.SAVEMESSAGEONSEND = True

    MailDoc.SEND 0, Recipient
     
  2. abbatik

    abbatik Lotus team
    Lotus team

    Регистрация:
    20 окт 2008
    Сообщения:
    277
    Симпатии:
    0
    Думаю причина в этом куске:

    Код (Text):
    If Maildb.IsOpen = False Then
    Maildb.OPENMAIL  
    End If
    Тем более не очень понятно для чего вы это делаете? Разве нельзя создать документ, не делая Open?
     
  3. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    В том-то и дело что нельзя. Если это выкинуть - то возникает ошибка что база не открыта еще.
    Ну а визуально открывается не почтовая база, а просто Notes-клиент
     
  4. abbatik

    abbatik Lotus team
    Lotus team

    Регистрация:
    20 окт 2008
    Сообщения:
    277
    Симпатии:
    0
    А если Open использовать?
     
  5. ToxaRat

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

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    интересно и как это вы собрались отправлять письмо не уведомя при этом пользователя, да ещё и под его ИД? :huh:
     
  6. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Не работает

    Хорошо.. не правильно выразился... не "прозрачно", а без запуска Notes-клиента, но с запросом пароля... если ничего не путаю - то логин можно вызывать без запуска клиента. Хотя... помнится что можно сделать и без запроса пароля...
     
  7. duchan

    duchan Well-Known Member

    Регистрация:
    20 сен 2006
    Сообщения:
    105
    Симпатии:
    2
    Вы немного не тот объект вызываете:
    Notes.NotesSession и Notes.NotesUIWorkspace - это OLE - "устаревшие" объекты.
    Вызывайте Lotus.NotesSession - это COM, только не забудте авторизироватся... :huh:
     
  8. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    DuChan
    Отлично! Спасибо!
    Вот только очередное неудобство... каждое письмо требует пароль авторизации :huh:
     
  9. ToxaRat

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

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    NickProstoNick
    так через ком и пароль можно передать
    просто сохраните его у себя в коде в процессе первого запроса(своим инпут боксом)
     
  10. abbatik

    abbatik Lotus team
    Lotus team

    Регистрация:
    20 окт 2008
    Сообщения:
    277
    Симпатии:
    0
    Через COM-объект аккаунт передавайте :)
     
  11. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Да это все понятно.... просто VBA - зло!!! :)
    Это же надо еще разобраться где держать эту переменную с паролем :(

    Хотел приципить файл.. не получилось.. потому на словах...
    Кто-нить в курсе по поводу опции Don't promt for a password... в User Security?
    Как она работает?

    И еще... где можно посмотреть методы доступных COM объектов?
     
  12. ToxaRat

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

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    если пароль совпадает с виндусячим то пароль запрашиваться не будет :)
    в принцыпе как выход покатит :(
     
  13. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Ответ не верный. Путаете с Single Logon.
     
Загрузка...

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