orze
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте! Нужно в MS Outlook 2007 организовать автоматическую отправку писем с вложениями. Для этого собираюсь в планировщик засунуть батник, который каждые 5 минут проверяет наличие файла в папке с вложениями (готовыми к отправке) и если такие есть, то запускает Outlook с ключом запуска на выполнение VBA проекта. Имеется скрипт, который умеет отправлять одно письмо с вложением из папки (C:\temp\3): Код: Function GetAttach() Dim strPath Dim arrFiles strPath = "C:\temp\3" Set arrFiles = CreateObject("Shell.Application").NameSpace(strPath).Items arrFiles.Filter 64, "*.txt" Select Case arrFiles.Count Case 0 MsgBox "Отчет для отправки не найден.", 48, "Отправка файла" WScript.Quit 1 Case 1 GetAttach = arrFiles.Item(0).Path Case Else MsgBox "Найдено несколько файлов.", 48, "Отправка файла" WScript.Quit 1 End Select End Function Sub SendReports() Dim myOlApp As New Outlook.Application Dim myItem As Outlook.MailItem Dim myAttachments As Outlook.Attachments Set myItem = myOlApp.CreateItem(olMailItem) myItem.To = "ivanov@mail.ru" myItem.Subject = "отчет" myItem.Body = "С уважением, Иванов Иван" Set myAttachments = myItem.Attachments myAttachments.Add GetAttach, _ olByValue myItem.Send On Error GoTo 0 Set OutMail = Nothing Set OutApp = Nothing End Sub | Нужен скрипт, который бы работал, если в папке C:\temp\3\ лежит несколько вложений. Есть два желаемых варианта (устроит любой): 1.- при наличии нескольких вложений скрипт создает одно письмо с несколькими вложениями внутри. 2. - при наличии нескольких вложений скрипт создает несколько писем с одним вложением в каждом. Есть рабочий скрипт с циклом, который сохраняет вложения входящих писем: Код: Sub SaveMyMail(objMyItem As Outlook.MailItem) Set myAttachments = objMyItem.Attachments For i = 1 To myAttachments.Count Set myAtt = myAttachments.Item(i) myAtt.SaveAsFile "C:\temp\3\save\" & "_File" & i & "_" & myAtt.DisplayName Next End Sub | Пробывал интуитивно переделать первый скрипт, вставить в него цикл как во втором, получилась неработающая конструкция, т.к. в VBS ничего не понимаю. Просьба помочь. Прилагаю ужас, котрый я пытался сделать: Код: Sub SendReports() Dim strPath Dim arrFiles strPath = "C:\temp\3\send" Set arrFiles = CreateObject("Shell.Application").NameSpace(strPath).Items arrFiles.Filter 64, "*.txt" For i = 1 To arrFiles.Count Set myArr = arrFiles.Item(i).Path Dim myOlApp As New Outlook.Application Dim myItem As Outlook.MailItem Dim myAttachments As Outlook.Attachments Set myItem = myOlApp.CreateItem(olMailItem) myItem.To = "ivanov@mail.ru" myItem.Subject = "отчет" myItem.Body = "С уважением, Иванов Иван" Set myAttachments = myItem.Attachments myAttachments.Add myArr, _ olByValue myItem.Send On Error GoTo 0 Set OutMail = Nothing Set OutApp = Nothing Next End Sub |
| Всего записей: 8 | Зарегистр. 14-04-2006 | Отправлено: 15:35 25-10-2011 | Исправлено: orze, 15:37 25-10-2011 |
|