Страницы: 1
RSS
Lotus and VBA. Отправленные сообщения
 
Добрый день, знатоки!  
 
У меня проблема с отправкой почты через Лотус. Сам процесс налажен, письма отправляются, адресаты их получают, все, кто в копии, в скрытой копии - тоже получают. Никаких проблем. Поддерживает отправку до 40 адресатов (при желании можно увеличить) одновременно с одной кнопки поочередно. Все бы хорошо, но при отправке не появляется копия документа в папке "Sent" в Лотусе.    
 
Согласен, можно просто добавить себя в копию писем, но при работе с большими объемами почты не удобно "залезать" в Inbox и копировать отправленные письма оттуда в Сенты. Просмотрел не один сайт. Везде только сам макрос описан как отправить.  
Подскажите, пожалуйста, существует ли какой-то код их принудительного сохранения? Может быть какое-то иное решение
 
notesdoc.SaveMessageOnSend = True  
 
Такая строка есть в коде? notesdoc - условное название.
 
{quote}{login=Hugo}{date=06.12.2010 05:54}{thema=}{post}notesdoc.SaveMessageOnSend = True  
 
Такая строка есть в коде? notesdoc - условное название.{/post}{/quote}  
 
 
В том-то и дело, что есть. Все должно сохраняться, но на деле этого не происходит почему-то
 
Alex_DR, а Вы не могли бы скинуть свой код для отправки сообщений через Лотус.  
Я использовал разные коды, но они для Аутлука и для Лотуса не подходят.  
Очень надо ...  
P.S. мне не надо сохранение копий в папке Sent
 
http://xldennis.com/  
Тут есть примеры кода для Lotus - смотрите в Excel - Program
 
{quote}{login=Bas}{date=07.12.2010 04:01}{thema=Re: }{post}Alex_DR, а Вы не могли бы скинуть свой код для отправки сообщений через Лотус.  
Я использовал разные коды, но они для Аутлука и для Лотуса не подходят.  
Очень надо ...  
P.S. мне не надо сохранение копий в папке Sent{/post}{/quote}  
 
http://www.fabalou.com/VBandVBA/lotusnotesmail.asp  
 
Bas, попробуйте сделать все, как там. Я свой не решусь скидывать, т.к. у меня он настроен на прикрепление файлов с четко заданным именем. Эти файлы собирает другой мой макрос. Могу, если надо, по возможности подсказать что-то. Просто у меня там многие параметры заданы через именованные диапазоны, кучи условий проверки правильности ввода данных... Легко запутаться. Все потому, что файл занимается рассылкой почты поставщикам услуг, а это, сами понимаете, работа с конфиденциальной информацией. Отправь разок файлик не тому и можно нести "по собственному желанию" в отдел кадров :)
 
Alex_DR, спасибо! сижу разбираюсь  
Hugo, тоже спасибо за отклик!  
:-)
 
Bas, немного исправить код придется. Если у Вас Лотус не старый. Я использовал следующий:  
 
Dim Maildb As Object  
Dim MailDoc As Object  
Dim Body As Object  
Dim Session As Object  
 
Set Session = CreateObject("Lotus.NotesSession")  
Call Session.Initialize(Password)  
 
Set Maildb = Session.GETDATABASE("", Dbaddress)  
If Not Maildb.IsOpen = True Then  
Call Maildb.Open  
End If  
Set MailDoc = Maildb.CREATEDOCUMENT  
Call MailDoc.ReplaceItemValue("Form", "Memo")  
Call MailDoc.ReplaceItemValue("SendTo", recipient)  
Call MailDoc.ReplaceItemValue("CopyTo", ccrecipient)  
Call MailDoc.ReplaceItemValue("BlindCopyTo", bccrecipient)  
Call MailDoc.ReplaceItemValue("Subject", Theme)  
Set Body = MailDoc.CREATERICHTEXTITEM("Body")  
Call Body.APPENDTEXT(Message_text)  
If AttachFlag = True Then  
Call Body.ADDNEWLINE(2)  
Call Body.EMBEDOBJECT(1454, "", AttachmentAddress, "Attachment")  
End If  
MailDoc.SAVEMESSAGEONSEND = True  
Call MailDoc.ReplaceItemValue("PostedDate", Now())  
Call MailDoc.SEND(True)  
Set Maildb = Nothing  
Set MailDoc = Nothing  
Set Body = Nothing  
Set Session = Nothing  
 
 
Это та часть макроса, которая отвечает как раз за сборку письма и отправку адресату. AttachmentAddress - это моя переменная. Вы в данном случае можете задать любую на свой вкус.  
 
Господа, я так понимаю, что на мой изначальный вопрос не получается найти решение? Или же вы собираете консилиум и сейчас идет жаркое обсуждение вплоть до бросков мышью в стену со словами "Я чувствую, что ответ где-то близок, но не могу никак его найти!!!"?  :)
 
Кстати, строки  
 
If AttachFlag = True Then  
End If  
 
не входят в стандартную процедуру отправки. Это опять же мое условие. Просто добавил возможность выбора: прикреплять или нет файлик к письму.
 
Спасибо всем за "помощь" с сохранением писем! Буду продолжать искать решение самостоятельно!
 
{quote}{login=Alex_DR}{date=08.12.2010 10:58}{thema=}{post}Bas, немного исправить код придется. Если у Вас Лотус не старый. Я использовал следующий:  
 
Dim Maildb As Object  
Dim MailDoc As Object  
Dim Body As Object  
Dim Session As Object  
 
Set Session = CreateObject("Lotus.NotesSession")  
Call Session.Initialize(Password)  
 
 
 
Set Maildb = Session.GETDATABASE("", Dbaddress)  
If Not Maildb.IsOpen = True Then  
Call Maildb.Open  
End If  
Set MailDoc = Maildb.CREATEDOCUMENT  
Call MailDoc.ReplaceItemValue("Form", "Memo")  
Call MailDoc.ReplaceItemValue("SendTo", recipient)  
Call MailDoc.ReplaceItemValue("CopyTo", ccrecipient)  
Call MailDoc.ReplaceItemValue("BlindCopyTo", bccrecipient)  
Call MailDoc.ReplaceItemValue("Subject", Theme)  
Set Body = MailDoc.CREATERICHTEXTITEM("Body")  
Call Body.APPENDTEXT(Message_text)  
If AttachFlag = True Then  
Call Body.ADDNEWLINE(2)  
Call Body.EMBEDOBJECT(1454, "", AttachmentAddress, "Attachment")  
End If  
MailDoc.SAVEMESSAGEONSEND = True  
Call MailDoc.ReplaceItemValue("PostedDate", Now())  
Call MailDoc.SEND(True)  
Set Maildb = Nothing  
Set MailDoc = Nothing  
Set Body = Nothing  
Set Session = Nothing  
 
{/quote}  
 
у меня этот макрос прерывается на строке Set Maildb = Session.GETDATABASE("", Dbaddress)  
 
в чем здесь проблема ?
 
Alex_DR, спасибо за код, но я не петрю нисипа в программировании, просто беру исходник и перешаманиваю его для себя  
 
Я так понимаю в Ваш код нужно добавить Sub Макрос1 и End Sub в конце и макрос готов?
 
{quote}{login=Bas}{date=23.12.2010 11:40}{thema=Re: }{post}Alex_DR, спасибо за код, но я не петрю нисипа в программировании, просто беру исходник и перешаманиваю его для себя  
 
Я так понимаю в Ваш код нужно добавить Sub Макрос1 и End Sub в конце и макрос готов?{/post}{/quote}  
 
я именно так и сделал. результат - описан выше (прерывается выполенние кода)
 
объясните, пожалуйста, что нужно прописывать в строке  
 
Set Maildb = Session.GETDATABASE("", Dbaddress)  
 
т.к. у меня выполнение макроса обрывается на этой строке.
 
{quote}{login=ant_sol}{date=23.12.2010 05:15}{thema=Re: Re: Re: }{post}объясните, пожалуйста, что нужно прописывать в строке  
 
Set Maildb = Session.GETDATABASE("", Dbaddress)  
 
т.к. у меня выполнение макроса обрывается на этой строке.{/post}{/quote}  
 
С версий 7 Lotus у меня работает такой код  
==========================  
 
Function Send_Mail(mailSendTo, mailCCTo, mailSubject, AttachFile)  
 
On Error GoTo SendMailError  
     
   Dim objNotesSession As Object  
   Dim objNotesMailFile As Object  
   Dim objNotesDocument As Object  
   Dim objNotesField As Object  
     
   ''Establish Connection to Notes  
   Set objNotesSession = CreateObject("Notes.NotesSession")  
     
   ''Establish Connection to Mail File  
   Set objNotesMailFile = objNotesSession.GETDATABASE(objNotesSession.getenvironmentstring("MailServer", True), objNotesSession.getenvironmentstring("Mailfile", True))  
'    Set objNotesMailFile = objNotesSession.GETDATABASE("", "")  
     
   ''Open Mail  
   If Not objNotesMailFile.IsOpen Then objNotesMailFile.OpenMail  
     
   ''Create New Memo  
   Set objNotesDocument = objNotesMailFile.CREATEDOCUMENT  
   With objNotesDocument  
       .Form = "Memo"  
       .Importance = "1"  
       .SendTo = mailSendTo  
       .CopyTo = mailCCTo  
       .BlindCopyTo = Ì.Range("F34").Value  
       .Subject = ">>: " & mailSubject  
'        .SAVEMESSAGEONSEND = True  
   End With  
     
   ''Create 'Body' of memo  
   Set objNotesField = objNotesDocument.CREATERICHTEXTITEM("Body")  
   With objNotesField  
       .APPENDTEXT Ì.Range("K28").Value  
       .ADDNEWLINE 1  
       .APPENDTEXT Ì.Range("K29").Value  
       .ADDNEWLINE 1  
       .APPENDTEXT Ì.Range("K30").Value  
       .ADDNEWLINE 1  
       .APPENDTEXT Ì.Range("K31").Value  
       .ADDNEWLINE 1  
       .APPENDTEXT Ì.Range("K32").Value  
       .ADDNEWLINE 1  
       .APPENDTEXT Ì.Range("K33").Value  
       .ADDNEWLINE 2  
       .APPENDTEXT "Ñì. âëîæåíèå"  
       .ADDNEWLINE 1  
       .APPENDTEXT mailSubject  
       .ADDNEWLINE 1  
   End With  
     
   ''Attach the file   --1454 indicate a file attachment  
   Set objNotesField = objNotesDocument.CREATERICHTEXTITEM("Attachment")  
   Set objNotesField = objNotesField.EMBEDOBJECT(1454, "", AttachFile)  
     
   ''Send the e-mail  
   objNotesDocument.PostedDate = Now()  
   objNotesDocument.Send (False)  
     
   ''Release storage  
   Set objNotesField = Nothing  
   Set objNotesDocument = Nothing  
   Set objNotesMailFile = Nothing  
   Set objNotesSession = Nothing  
     
   ''Set return code  
   Send_Mail = True  
     
   MsgBox "Ïèñüìî >>: " & mailSubject & Chr(13) & Chr(13) & "" & Chr(10) & _  
   "Îòïðàâëåíî !"  
     
   Exit Function  
     
SendMailError:  
   Msg = "Error # " & Str(Err.Number) & " was generated by " _  
               & Err.Source & Chr(13) & Err.Description  
   MsgBox Msg, , "Error Send_Mail", Err.HelpFile, Err.HelpContext  
     
   Send_Mail = False  
 
End Function
 
ant_sol  
Dbaddress - это путь к Вашей личной учетной записи в лотусе. Файлик с ".nsf" расширением. Скорее всего находится в Лотусе в папке Data.  
 
Dbaddress в моем случае - это переменная, указывающая путь к файлику.  
 
Посмотрите более свежие темы на форуме. Прямо по нику задайте поиск. Я давал более подробное описание своего кода.
 
люди, как прикрепить несколько файлов, попробвал закрутить строчку:  
 
Set objNotesField = objNotesField.EMBEDOBJECT(1454, "", AttachFile)  
 
в цикле с переменной Attachfile, не работает
Страницы: 1
Читают тему
Наверх