Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Отправить письмо из VB / 13 сообщений из 13, страница 1 из 1
12.01.2010, 06:50
    #36404517
vera_t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправить письмо из VB
Можно ли автомотически посылать письма по LOTUS Domino из Vb Exсel (програмно)? Подскажите пожалуйста какую-нибудь литературу по этому вопросу.
...
Рейтинг: 0 / 0
12.01.2010, 09:03
    #36404595
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправить письмо из VB
по литературе не скажу.
могу предложить посмотреть на объектную модель ЛОТУС, скорее всего там будут методы по посылке сообщения

и, кстати, в ЛОТУС есть свой VBA, как вариант, можно на нем делать обработку файла

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
12.01.2010, 09:17
    #36404606
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправить письмо из VB
vera_t,

Почитайте вот это - Sending email using Lotus Notes from VB
...
Рейтинг: 0 / 0
12.01.2010, 11:35
    #36404846
Core12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправить письмо из VB
Любая книжка по Basic.
Статейка на мсдне
http://msdn.microsoft.com/ru-ru/library/ms173026.aspx

Статья на форуме
http://www.sql.ru/forum/actualthread.aspx?tid=296313&hl=smtp
Так для инфы
http://visualprogs.medyal.ru/final/20.html
...
Рейтинг: 0 / 0
12.01.2010, 12:00
    #36404904
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправить письмо из VB
Кстати, да, может пригодиться.
Опробовал код из ссылки выше , работает, аттачмент прикрепился и дошёл:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Sub tt()

Dim notesdb As Object
Dim notesdoc As Object
Dim notesrtf As Object
Dim notessession As Object
Set notessession = CreateObject("Notes.Notessession")
Set notesdb = notessession.GETDATABASE("", "")
'Dim lnSession As notessession

strSendTo = "iivanov"
Call notesdb.OPENMAIL
'Rem make new mail message
Set notesdoc = notesdb.CREATEDOCUMENT
Call notesdoc.REPLACEITEMVALUE("Sendto", strSendTo)
'Call notesdoc.REPLACEITEMVALUE("Copyto", strCopyTo)
'Call notesdoc.REPLACEITEMVALUE("BlindCopyto", strBCC)
Call notesdoc.REPLACEITEMVALUE("Subject", "Referral " + strString)
Set notesrtf = notesdoc.CREATERICHTEXTITEM("body")
Call notesrtf.EMBEDOBJECT( 1454 , "", "c:\Book1.xls")
'Call notesrtf.EMBEDOBJECT(1454, "", "c:\referrals\" + strString1 + "_" + strString + ".xls")
Call notesrtf.ADDNEWLINE( 2 )
Call notesrtf.APPENDTEXT("My Message")
'Rem attach Error Report doc
'Rem send message
Call notesdoc.Send(False)
Set notessession = Nothing

End Sub
Пришлось его немного подкорректировать (lnSession не понятно зачем, не работает), так у меня работает (в фоне, отсылает незаметно, но Лотус должен быть открыт, иначе запрашивает пароль перед отсылкой и всё равно открывает Лотус, причём естественно не с привычными настройками из ярлыка).
...
Рейтинг: 0 / 0
10.02.2010, 02:14
    #36459176
vera_t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправить письмо из VB
Воспользовалась кодом, который прислат Hugo121. Письмо отсылается, но в моей базе, в отправленных документах не отображается что письмо было отправлено. Можно ли что-нибудь сделать чтобы отображалось.
...
Рейтинг: 0 / 0
10.02.2010, 09:51
    #36459432
.Михаил.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправить письмо из VB
vera_t,
Через Outlook, который есть в любой Windows
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim objOL As Outlook.Application, objMail As MailItem, objAttach As Outlook.Attachments
Set objOL = New Outlook.Application
Set objMail = objOL.CreateItem(olMailItem)
Set objAttach = objMail.Attachments
With objMail
    .To = "mm@mm.ru; dd@dd.ru" ' адрес, несколько через ;
    .Subject = "Это тема письма"
    .Body  = "Это текст письма"
    .Display ' показать окно письма
    .Send ' отправить автоматом
End With
Set objMail = Nothing
Set objOL = Nothing
Set objAttach = Nothing
...
Рейтинг: 0 / 0
10.02.2010, 09:53
    #36459439
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправить письмо из VB
Я не вникал, практически не использую.
Но вот тут погуглил по CreateObject("Notes.Notessession"),
на http://www.fabalou.com/VBandVBA/lotusnotesmail.asp в коде есть такие строки:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    UserName = Session.UserName
    MailDbName = Left$(UserName,  1 ) & Right$(UserName, (Len(UserName) - InStr( 1 , UserName, " "))) & ".nsf"
    'Open the mail database in notes
    Set Maildb = Session.GETDATABASE("", MailDbName)
     If Maildb.ISOPEN = True Then
          'Already open for mail
     Else
         Maildb.OPENMAIL
     End If
В предыдущем коде notessession.GETDATABASE("", "") похоже так и не была открыта...
...
Рейтинг: 0 / 0
21.04.2010, 10:24
    #36589409
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправить письмо из VB
vera_t,
понимаю, что поздно, но сам только сегодня столкнулся с необходимостью сохранить в отправленных
Никто из ответственных за Лотус программистов ответ не знает - "ну это надо смотреть, искать, время тратить, пишите заявку"...
А ответ простой -
Код: plaintext
1.
2.
notesdoc.SaveMessageOnSend = True 'ВОТ ЭТА СТРОКА
Call notesdoc.SEND(False)
Set notessession = Nothing

В итоге файл Экселя уходит по адресам с сохранением в отправленных после нажатия кнопки "Отправить" в этом же файле. Кнопка красится в ядовитый цвет с грозной надписью во избежание повторной отправки. Если конечно письмо ушло...
...
Рейтинг: 0 / 0
22.04.2010, 12:48
    #36592184
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправить письмо из VB
Ещё здесь порыться можно. Прямой линк на LotusNotes. Правда на шведском, но код понять можно. Как добавить в меню отсылку активной книги через Лотус - проверил, работает и кстати сохраняет в отправленных.
...
Рейтинг: 0 / 0
27.05.2010, 09:06
    #36651896
vera_t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправить письмо из VB
Вроде делаю все правильно:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Sub tt()
Dim notesdb As Object
Dim notesdoc As Object
Dim notesrtf As Object
Dim notessession As Object
Set notessession = CreateObject("Notes.Notessession")
UserName = notessession.UserName
    MailDbName = "mail/vtuveeva.nsf"
Set notesdb = notessession.GETDATABASE("", MailDbName)
strSendTo = "Ekaterina"
Call notesdb.OPENMAIL
Set notesdoc = notesdb.CREATEDOCUMENT
Call notesdoc.REPLACEITEMVALUE("Sendto", strSendTo)
Call notesdoc.REPLACEITEMVALUE("Subject", "ïðîáà")
Set notesrtf = notesdoc.CREATERICHTEXTITEM("body")
Call notesrtf.ADDNEWLINE( 2 )
Call notesrtf.APPENDTEXT("Ïðîáà")
notesdoc.SaveMessageOnSend = True
Call notesdoc.Send(False)
Set notessession = Nothing
End Sub

но все равно не сохраняет в отправленных, хотя письмо доходит по назначению.

Скажите пожалуйста в строке:
Set notesdb = notessession.GETDATABASE("", MailDbName)
как правильно указать базу (параметр MailDbName) нужно ли указывать имя севера?
...
Рейтинг: 0 / 0
27.05.2010, 16:35
    #36653425
Sergey057
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправить письмо из VB
vera_t
Скажите пожалуйста в строке:
Set notesdb = notessession.GETDATABASE("", MailDbName)
как правильно указать базу (параметр MailDbName) нужно ли указывать имя севера?

Вот кусок из хелпа лотусового дизайнера:

Creates a NotesDatabase object that represents the database located at the server and file name you specify, and opens the database, if possible.
Defined in
NotesSession
Syntax
Set notesDatabase = notesSession.GetDatabase( server$, dbfile$ [, createonfail ] )
Parameters
server$
String. The name of the server on which the database resides. Use an empty string ("") to indicate a database on the current computer: if the script runs on the workstation, the empty string indicates a local database; if the script runs on a server, it indicates a database on that server.
dbfile$
String. The file name and location of the database within the Notes data directory. Use a full path name if the database is not within the Notes data directory. Use empty strings for both dbfile$ and server$ if you want to create a Database object not yet associated with a database.
createonfail
Note This parameter is new with Release 5.
Boolean. Optional. Specify True (default) to create a Database object even if the specified database cannot be opened. Specify False to return Nothing (the Database object is not created) if the database cannot be opened.
Return value
notesDatabase
A NotesDatabase object that can be used to access the database you've specified, or Nothing if the database cannot be opened and createonfail is False. If the database cannot be opened and createonfail is True or omitted, IsOpen is false for the NotesDatabase object.

Запускать будете из приложения, а не из серверного агента поэтому имя сервера надо указывать, вот так (параметр MailDbName вы задали правильно):
Код: plaintext
[/SRC]Set db = session.GetDatabase("MyMailServer", "mail/vtuveeva.nsf")[SRC vba]
...
Рейтинг: 0 / 0
23.06.2010, 17:18
    #36703989
diaman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправить письмо из VB
big-duke, Hugo_121
Спасибо, код очень помог.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Отправить письмо из VB / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]