Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / авторассылка файлов Excel через Outlook / 8 сообщений из 8, страница 1 из 1
10.03.2009, 14:12:00
    #35859765
Servjul
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторассылка файлов Excel через Outlook
Добрый день,
Подскажите, пожалуйста, может у кого есть VBA-решение по автоматической рассылке файлов.
Проблема такая: есть Excel-файл (например, с данными по Питеру), который необходимо отправить всем питерским получателям.
А поскольку городов -тьма, можно ли как-то автоматизировать процесс рассылки.
Например, файлы попадают в папку "Рассылка" и оттуда автоматически один раз отсылаются по соответствующим адресам?
Спасибо заранее.
...
Рейтинг: 0 / 0
11.03.2009, 11:23:33
    #35861523
Hekk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторассылка файлов Excel через Outlook
Точно не знаю но я делал так

Как вариант эксель выкладывает файлы по папкам, а потом
MailParser
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 представляет собой автономный почтовый клиент (почтовый робот), позволяющий:
– извлекать вложения из входящей почты и раскладывать их по директориям в соответствии с правилами разбора почты (по протоколу POP3);
– сканировать директории на наличие файлов, формировать для них письма и отправлять их на указанные адреса в соответствиями с правилами подготовки почты (по протоколу SMTP);
– обрабатывать неограниченное количество потовых аккаунтов;
– запускать внешнее приложение (командный файл) после приема почты;
– вести архив и журнал извлеченных и отправленных вложений;
– проверять и отправлять почту с заданным интервалом.

Или как вариан Excel публикует отчет в папку и создает bat файл с строками отсылки
через Postie или SendMail

Код: 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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
Private Sub Workbook_Open()
Dim bstFileName As String
Dim MonthDay As Long
Dim CurDay As String
Dim CurMonth As String
Dim CurMonthLY As String
Dim E_C As String
Dim E_CC As String

E_C = _
    "tik@er.ru, eva@er.ru," _
    & "ov@er.ru, mkov@er.ru," _
    & "tin@er.ru"
        
E_CC = _
    "tik@er.ru, eva@er.ru," _
    & "ov@er.ru, mkov@er.ru," _
    & "tin@er.ru

    Call Logo
    Sheets("Data").Visible = True
    bdt_Dat = Date - 1
    bstFileName = "c:\postie\!send_day.bat"
    Open bstFileName For Output As #1
    Print #1, "Rem -----------  Daily_Report.xls  " & Date & " " & Time
    Print #1,
    Print #1, "echo ______________________________________________________________________ >>!send_message.log"
    Print #1, "echo  " & bdt_Dat & " è " & bdt_Dat & "  >>!send_message.log"
    Print #1, "date /t  >>!send_message.log"
    Print #1, "time /t  >>!send_message.log"
    Print #1,
    
    CurMonth = "[Logicdate].[All Logicdate].[" & Year(bdt_Dat) & "].[" & Month_To_Text(Month(bdt_Dat)) & "]"
    CurMonthLY = "[Logicdate].[All Logicdate].[" & Year(bdt_Dat - 365) & "].[" & Month_To_Text(Month(bdt_Dat)) & "]"
    
    Sheets("Daily-by-TM").Select
    
    Range("E9").Select
    GetDollar
    Range("G9").Select
    GetDollarOLD
    
    
    Sheets("Data").Select
    
    
    If Day(Date) = 2 Then Month_Change
    
    ActiveSheet.PivotTables("Act sales").PivotCache.Refresh
    ActiveSheet.PivotTables("Act check").PivotCache.Refresh
    ActiveSheet.PivotTables("plan sales").PivotCache.Refresh
    ActiveSheet.PivotTables("plan check").PivotCache.Refresh
    ActiveSheet.PivotTables("LY sales").PivotCache.Refresh
    ActiveSheet.PivotTables("LY check").PivotCache.Refresh
    
    Sheets("Daily-by-TM").Select
    
    Sort_Data
    
    With ActiveWorkbook.PublishObjects("MTD_Report_28372")
        .Filename = "d:\documents\Reports\" & bdt_Dat & "_Sales.mht"
        .Publish (False)
        .AutoRepublish = False
    End With
 
    
    Print #1, "postie.exe -config -a:" _
    & Chr(34) & "d:\documents\Reports\" & bdt_Dat & "_Sales.mht" & Chr(34) _
    & " -to:" & Chr(34) & E_C & Chr(34) _
    & " -cc:" & Chr(34) & E_CC & Chr(34) _
    & " -s:" & Chr(34) & "Every Day Report - Sales" & bdt_Dat & Chr(34) _
    & " -msg:" & Chr(34) & "Every Day Report - Sales " & bdt_Dat & Chr(34) _
    & " -file:" & Chr(34) & "text_typ.txt" & Chr(34) _
    & " >>!send_message.log"
 
    
    Close #1
    Sheets("Daily-by-TM").Select
    Sheets("Data").Visible = False
    ActiveWindow.Close SaveChanges:=True
  
End Sub

потом настраиваете планировщик на запуск файла excel c макросом по расписанию
потом настраиваете планировщик на запуск сформированного bat файла через 10 мин.
...
Рейтинг: 0 / 0
11.03.2009, 12:07:05
    #35861709
Hekk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторассылка файлов Excel через Outlook
http://www.askit.ru/custom/vba_office/m13/13_06_outlook_items_objects.htm

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim oOutlook As New Outlook.Application
Dim oMessage As Outlook.MailItem
'Создаем объект сообщения
Set oMessage = oOutlook.CreateItem(olMailItem)
' Кому
oMessage.To = "Administrator@nwtraders.msft"
'Тема сообщения
oMessage.Subject = "Привет из VBA"
'Текст сообщения. Использование свойства Body означает, что мы посылаем сообщение
'обычным текстом. Можно также посылать сообщение в HTML или RTF
oMessage.Body = "Текст сообщения"
'Добавляем вложение
oMessage.Attachments.Add ("C:\installlog.txt")
'Отправляем сообщение
oMessage.Send

...
Рейтинг: 0 / 0
11.03.2009, 14:10:03
    #35862178
Servjul
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторассылка файлов Excel через Outlook
to Hekk
Спасибо.
Буду пробовать...
...
Рейтинг: 0 / 0
17.03.2009, 09:13:31
    #35873093
Hekk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторассылка файлов Excel через Outlook
второй премер для VBA самого outlook-a
...
Рейтинг: 0 / 0
19.03.2009, 13:53:10
    #35879195
Hekk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторассылка файлов Excel через Outlook
Вот нарыл еще пару примеров

Первый - просто отправка e-mail
Код: 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.
Sub test()
    Call SendPost("здесь IP почтового сервера или имя", "адрес получателя", "адрес отправителя", "Subj", "Тело", "атач" пример: C:\test.xls)
End Sub

'если не работает надо найти 2 библиотеки "inetcomm.dll msoert2.dll" и положить их в system32
Function SendPost(strSMTP_Server, strTo, strFrom, strSubject, strBody, strAttach)
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields

    Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "пароль если есть"
    Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") =  2 
    Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") =  10 
    Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSMTP_Server
    Flds.Update
    iMsg.Configuration = iConf

    iMsg.To = strTo
    iMsg.From = strFrom
    iMsg.Subject = strSubject
    iMsg.TextBody = strBody
    If strAttach <> "" Then iMsg.AddAttachment strAttach
    iMsg.Send
    Set iMsg = Nothing
    Set iConf = Nothing
    Set Flds = Nothing
End Function

Проверил у меня заработало
только добавил еще строчку
Код: plaintext
 Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") =  2 


Второй - отправка раб. листа по электронной почте
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub SendSheet(ws As Worksheet, Address As String, Subject As String)
    ActiveSheet.Copy
        ActiveWorkbook.SaveAs "Part of " & ThisWorkbook.Name & " " & Format(Now, "h-mm-ss"), xlWorkbookNormal
            ActiveWorkbook.SendMail Address, Subject
                ActiveWorkbook.ChangeFileAccess xlReadOnly
            Kill ActiveWorkbook.FullName
        ActiveWorkbook.Close False
End Sub

Sub DemoSendSheet()
    SendSheet ActiveSheet, "your_email@address", "test message"
End Sub
...
Рейтинг: 0 / 0
19.03.2009, 15:49:16
    #35879590
Папа Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторассылка файлов Excel через Outlook
Servjul...Проблема такая: есть Excel-файл (например, с данными по Питеру), который необходимо отправить всем питерским получателям. ...

Зачем заходить через "заднее крыльцо" (VBA, *.bat и т.п.)?

Создайте в Outlook списки рассылки и будет Вам счастье.

Возможности ограничены Вашей фантазией и почтовым сервером.
...
Рейтинг: 0 / 0
03.08.2009, 15:30:51
    #36123500
авторассылка файлов Excel через Outlook
Всем привет! Помогите реализовать похожую задачу. Есть прайс с ценами, где на каждом листе цены которые соответствуют определенному клиенту. На каждом листе в определенных ячейках будут забиты адреса и тема письма. Нужно чтобы при запуске макроса он заходил в каждый лист и если там стоит електронный адрес(условие), копировал бы формулы в значения и отправлял этот лист по указанным адресам.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / авторассылка файлов Excel через Outlook / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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