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

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

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

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

Vba & Notes

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Всем привет.
Есть задача отсылать письма из 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
 
A

abbatik

Думаю причина в этом куске:

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

Тем более не очень понятно для чего вы это делаете? Разве нельзя создать документ, не делая Open?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Тем более не очень понятно для чего вы это делаете? Разве нельзя создать документ, не делая Open?
В том-то и дело что нельзя. Если это выкинуть - то возникает ошибка что база не открыта еще.
Ну а визуально открывается не почтовая база, а просто Notes-клиент
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
интересно и как это вы собрались отправлять письмо не уведомя при этом пользователя, да ещё и под его ИД? :huh:
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
А если Open использовать?
Не работает

интересно и как это вы собрались отправлять письмо не уведомя при этом пользователя, да ещё и под его ИД? wink.gif
Хорошо.. не правильно выразился... не "прозрачно", а без запуска Notes-клиента, но с запросом пароля... если ничего не путаю - то логин можно вызывать без запуска клиента. Хотя... помнится что можно сделать и без запроса пароля...
 

duchan

Green Team
20.09.2006
127
11
BIT
110
Вы немного не тот объект вызываете:
Notes.NotesSession и Notes.NotesUIWorkspace - это OLE - "устаревшие" объекты.
Вызывайте Lotus.NotesSession - это COM, только не забудте авторизироватся... :huh:
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
DuChan
Отлично! Спасибо!
Вот только очередное неудобство... каждое письмо требует пароль авторизации :huh:
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
NickProstoNick
так через ком и пароль можно передать
просто сохраните его у себя в коде в процессе первого запроса(своим инпут боксом)
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Да это все понятно.... просто VBA - зло!!! :)
Это же надо еще разобраться где держать эту переменную с паролем :(

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

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

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Кто-нить в курсе по поводу опции Don't promt for a password... в User Security?
если пароль совпадает с виндусячим то пароль запрашиваться не будет :)
в принцыпе как выход покатит :(
 
Мы в соцсетях:

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