Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2011, 22:15   #1
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
Лампочка Рассылка писем в Lotus Notes 8 с группового ящика

Всем добрый вечер!
Хочу оптимизировать процесс рассылки писем с группового ящика. Предполагается, что письмо будет формироваться по нажатию кнопки в Excel и отправляться после прочтения нескольким адресатам. Подскажите, как можно в Lotus Notes 8 сформировать такое письмо на общем ящике с помощью VBA?

В сети нашел вот такой код для отправки с личного ящика:

Код:
Public Sub SendNotesMail(Subject As String, Attachment As String, Recipient As String, BodyText As String, SaveIt As Boolean)
'Set up the objects required for Automation into lotus notes
    Dim Maildb As Object 'The mail database
    Dim UserName As String 'The current users notes name
    Dim MailDbName As String 'THe current users notes mail database name
    Dim MailDoc As Object 'The mail document itself
    Dim AttachME As Object 'The attachment richtextfile object
    Dim Session As Object 'The notes session
    Dim EmbedObj As Object 'The embedded object (Attachment)
    'Start a session to notes
    Set Session = CreateObject("Notes.NotesSession")
    'Next line only works with 5.x and above. Replace password with your password
    Session.Initialize("password")
    'Get the sessions username and then calculate the mail file name
    'You may or may not need this as for MailDBname with some systems you
    'can pass an empty string or using above password you can use other mailboxes.
    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
    'Set up the new mail document
    Set MailDoc = Maildb.CREATEDOCUMENT
    MailDoc.Form = "Memo"
    MailDoc.sendto = Recipient
    MailDoc.Subject = Subject
    MailDoc.Body = BodyText
    MailDoc.SAVEMESSAGEONSEND = SaveIt
    'Set up the embedded object and attachment and attach it
    If Attachment <> "" Then
        Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
        Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
        MailDoc.CREATERICHTEXTITEM ("Attachment")
    End If
    'Send the document
    MailDoc.PostedDate=Now() 'Gets the mail to appear in the sent items folder
    MailDoc.SEND 0, Recipient
    'Clean Up
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachME = Nothing
    Set Session = Nothing
    Set EmbedObj = Nothing
End Sub
Для отправки с группового ящика нашел вот такую подсказку:
1 - Use [.principal ="mygroupemail@mywork.com"] in the same section as .send etc.
2 - Where the connection to the mail file is made:
[Set objNotesMailFile = objNotesSession.GETDATABASE("", "")]

Для отправки по нескольким адресам вот такой код:

Dim recip(25) as variant
recip(0) = "emailaddress1"
recip(1) = "emailaddress2" e.t.c

maildoc.sendto = recip

Не знаю как скомпоновать эти куски кода. Help!
ruavia3 вне форума Ответить с цитированием
Старый 26.10.2011, 07:35   #2
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

Может есть более короткие варианты написания?
Для открытия окна сообщения на общем ящике и подставления адресатов.
ruavia3 вне форума Ответить с цитированием
Старый 26.10.2011, 12:59   #3
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Что-то уж очень замудрили, а не проще - просто без использования посторонних программ? И быстро и надёжно:
Код:
Sub imeil_items_send()
 Dim dateFTP As String, mail As String, text_mail As String, ZipName As String
Dim objMsg As Object, Config As Object
dateFTP = Sheets("report").Range("B3").Value
 mail = "FTP êàëüêóëÿòîð çà " & dateFTP
 text_mail = "Äîáðûé äåíü." & vbCrLf & "Âûñûëàþ Âàì íîâûå ñòàâêè FTP, êîòîðûå äåéñòâèòåëüíû ñîñòîÿíèåì íà " & dateFTP & " " & vbCrLf & "Ñïàñèáî, õîðîøåãî äíÿ."
 Application.DisplayAlerts = False
 ZipName = "K:\CorpBank\MIS_report\General\FTP\FTP rate calculator.xls"
   Set objMsg = CreateObject("CDO.Message")
Set Config = CreateObject("CDO.Configuration")
Set Config = objMsg.Configuration
objMsg.From = "от кого"
objMsg.To = "кому"
objMsg.Subject = mail
objMsg.TextBody = text_mail
objMsg.AddAttachment ZipName   'прикреплпние файла
Config("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
Config("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "адрес сервера"
Config("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
Config("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
Config("http://schemas.microsoft.com/cdo/configuration/sendusername") = "имя"
Config("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "пароль"
 Config.Fields.Update
objMsg.Send
Для подставления адресатов можно просто ввести их в таблицу и ввести что вроде:
Код:
adrM = ""
for i =2 to 50

pM = Range("A" & i).value & ";"

adrM = adrM & pM



next

Последний раз редактировалось Stilet; 27.10.2011 в 08:21.
gluk_fm вне форума Ответить с цитированием
Старый 26.10.2011, 21:46   #4
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

Спасибо!

Вылетает ошибка на строке
Set objMsg = CreateObject ("CDO.Massage")
Изображения
Тип файла: gif Lotus_VBA.gif (17.1 Кб, 56 просмотров)
ruavia3 вне форума Ответить с цитированием
Старый 26.10.2011, 21:48   #5
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

А за что отвечают эти строки? Если я не знаю адрес сервера как быть?
Код:
Config("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
Config("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "адрес сервера"
Config("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
Config("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
Config("http://schemas.microsoft.com/cdo/configuration/sendusername") = "имя"
Config("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "пароль"
ruavia3 вне форума Ответить с цитированием
Старый 26.10.2011, 22:28   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Сообщение от ruavia3 Посмотреть сообщение
Спасибо!

Вылетает ошибка на строке
Set objMsg = CreateObject ("CDO.Massage")
Значит, что в вашей Windows нет нужного компонента.
Найдите нужный файл, скопируйте его на компьютер, и зарегистрируйте компонент.
http://excelvba.ru/code/CDO

Или исправьте ошибку в "CDO.Massage"
EducatedFool вне форума Ответить с цитированием
Старый 26.10.2011, 23:11   #7
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Значит, что в вашей Windows нет нужного компонента.
Найдите нужный файл, скопируйте его на компьютер, и зарегистрируйте компонент.
http://excelvba.ru/code/CDO

Или исправьте ошибку в "CDO.Massage"
Спасибо)

А ссылки Config ("http://schemas.microsoft.com/cdo/configuration/...") какую функцию выполняют в данном коде?
ruavia3 вне форума Ответить с цитированием
Старый 26.10.2011, 23:34   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Сообщение от ruavia3 Посмотреть сообщение
А ссылки Config ("http://schemas.microsoft.com/cdo/configuration/...") какую функцию выполняют в данном коде?
Вам зачем это? Работает - да и ладно.

Ну придумал Microsoft такой формат записи настроек - и пусть, какая вам разница, как записывать настройки?

PS: Конфигурация по-умолчанию может загружаться с сервера майкрософт, мы лишь переопределяем некоторые значения в этой конфигурации.
EducatedFool вне форума Ответить с цитированием
Старый 27.10.2011, 07:47   #9
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Вам зачем это? Работает - да и ладно.

Ну придумал Microsoft такой формат записи настроек - и пусть, какая вам разница, как записывать настройки?

PS: Конфигурация по-умолчанию может загружаться с сервера майкрософт, мы лишь переопределяем некоторые значения в этой конфигурации.
Спасибо, только я не знаю адрес сервера его можно вывести каким-нибудь образом, например, как UserName?

Цитата:
Set Session = CreateObject("Notes.NotesSession")
UserName = Session.UserName

Последний раз редактировалось ruavia3; 27.10.2011 в 07:52.
ruavia3 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lotus Notes, Lotus Notes/Domino atenon Свободное общение 4 09.08.2012 07:36