Vba & Notes

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
Всем привет.
Есть задача отсылать письма из Access.
Решино было использовать COM.
Вопрос вот в чем... как отсылать письмо прозрачно для пользователя?
В ниже приведенном коде почти все работает как надо... кроме того что запускается Notes-клиент.
Хотя по идее не должен бы. Что не правильно?

Код:
	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
 
Думаю причина в этом куске:

Код:
If Maildb.IsOpen = False Then
Maildb.OPENMAIL	 
End If

Тем более не очень понятно для чего вы это делаете? Разве нельзя создать документ, не делая Open?
 
Тем более не очень понятно для чего вы это делаете? Разве нельзя создать документ, не делая Open?
В том-то и дело что нельзя. Если это выкинуть - то возникает ошибка что база не открыта еще.
Ну а визуально открывается не почтовая база, а просто Notes-клиент
 
интересно и как это вы собрались отправлять письмо не уведомя при этом пользователя, да ещё и под его ИД? :huh:
 
А если Open использовать?
Не работает

интересно и как это вы собрались отправлять письмо не уведомя при этом пользователя, да ещё и под его ИД? wink.gif
Хорошо.. не правильно выразился... не "прозрачно", а без запуска Notes-клиента, но с запросом пароля... если ничего не путаю - то логин можно вызывать без запуска клиента. Хотя... помнится что можно сделать и без запроса пароля...
 
Вы немного не тот объект вызываете:
Notes.NotesSession и Notes.NotesUIWorkspace - это OLE - "устаревшие" объекты.
Вызывайте Lotus.NotesSession - это COM, только не забудте авторизироватся... :huh:
 
DuChan
Отлично! Спасибо!
Вот только очередное неудобство... каждое письмо требует пароль авторизации :huh:
 
NickProstoNick
так через ком и пароль можно передать
просто сохраните его у себя в коде в процессе первого запроса(своим инпут боксом)
 
Да это все понятно.... просто VBA - зло!!! :)
Это же надо еще разобраться где держать эту переменную с паролем :(

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

И еще... где можно посмотреть методы доступных COM объектов?
 
Кто-нить в курсе по поводу опции Don't promt for a password... в User Security?
если пароль совпадает с виндусячим то пароль запрашиваться не будет :)
в принцыпе как выход покатит :(
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab