Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / рассылка писем из MS Access 2010: 1 ID контракта = 1 письмо = 1 участник(получатель) / 9 сообщений из 9, страница 1 из 1
12.04.2016, 12:25
    #39213469
Julia888
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
рассылка писем из MS Access 2010: 1 ID контракта = 1 письмо = 1 участник(получатель)
Привет всем!

Решаю следующую задачу на MS Access 2010:

Имеется:
Таблица c ID контракта и имейлом участника (на самом деле код участника, который резолвиться в MS Outlook как имейл)

Задача:
Написать VBA код для рассылки писем участникам с ID контракта в теме письма :

Условия:
ID контракта = 1 письмо = 1 участник(получатель)


Пробовала:

With rsEmail
.MoveFirst
Do Until rsEmail.EOF
If IsNull(.Fields(14)) = False Then
sToName = Left(.Fields(14), 7)
sSubject = "Ticket #: " & .Fields(1)
sMessageBody = "ююю"
MailOutLook.SentOnBehalfOfName = ""

DoCmd.SendObject acSendNoObject, , , _
sToName, , , sSubject, sMessageBody, False, False

End If
.MoveNext
Loop
End With

можно ли это вообще осуществить????

Спасибо за любые комменты!
...
Рейтинг: 0 / 0
12.04.2016, 15:02
    #39213708
NBjHCBrc6KlSObm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
рассылка писем из MS Access 2010: 1 ID контракта = 1 письмо = 1 участник(получатель)
Если почтовый сервер разрешает отправку без шифрования, то можно использовать программу blat: в наши дни он вполне неплохо отправляет письма даже в русской кодировке.
Если сервер требует шифрования, то можно отправлять blat-ом через stunnel.

Другой вариант — отправка с помощью CDOSYS библиотеки (смотрим гугл), например так:
http://www.rondebruin.nl/win/s1/cdo.htm

Она и шифрование умеет и русский язык.
...
Рейтинг: 0 / 0
12.04.2016, 15:14
    #39213738
Julia888
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
рассылка писем из MS Access 2010: 1 ID контракта = 1 письмо = 1 участник(получатель)
Спасибо за ответ, NBjHCBrc6KlSObm!

Пока не гуглила про blat-ом +stunnel, CDOSYS библиотеку....

хочу сразу уточнить ответ на мой вопрос "Возможно ли это вообще осуществить, используя только VBA код в MS Access и MS Outlook????"

P.S. ... только лицензированные программки можно ставить

Спасибо!!!
...
Рейтинг: 0 / 0
12.04.2016, 15:26
    #39213755
NBjHCBrc6KlSObm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
рассылка писем из MS Access 2010: 1 ID контракта = 1 письмо = 1 участник(получатель)
Ну я и написал, что «можно использовать». А можно и не использовать. Скорее всего кто-то придёт и поможет с вашим вариантом через Outlook.
У варианта с Blat преимущество в том, что можно запускать отправку пачкой, т.е. не ждать завершения одной отправки для следующей отправки.
Если у вас очень большой список получателей спама, возможно вы устанете ждать, пока все отправки выполнятся последовательно. Так же blat полностью бесплатен и не требует установки.

У варианта с CDO преимущество в том, что он родной микрософтский и не требует stunnel для SSL соединений. Я после blat перешёл на него.
...
Рейтинг: 0 / 0
12.04.2016, 15:55
    #39213811
Julia888
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
рассылка писем из MS Access 2010: 1 ID контракта = 1 письмо = 1 участник(получатель)
Спасибо, NBjHCBrc6KlSObm.
...
Рейтинг: 0 / 0
12.04.2016, 15:55
    #39213812
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
рассылка писем из MS Access 2010: 1 ID контракта = 1 письмо = 1 участник(получатель)
...
Рейтинг: 0 / 0
13.04.2016, 10:02
    #39214315
Julia888
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
рассылка писем из MS Access 2010: 1 ID контракта = 1 письмо = 1 участник(получатель)
Вот сама все таки сделала:


Function SendEmail()
' on Error GoTo Exit_Function
Dim oOutlook As Outlook.Application
Dim oEmailItem As Outlook.MailItem

Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("Table Name")
If rs.RecordCount > 0 Then
rs.MoveFirst
Do Until rs.EOF
If IsNull(rs![Name of Column1]) Then
rs.MoveNext
Else
If oOutlook Is Nothing Then
Set oOutlook = New Outlook.Application
End If
Set oEmailItem = oOutlook.CreateItem(olMailItem)
With oEmailItem

.To = Left(rs![Name of Column1], 7)
.cc = "email_cc@dgfgg.com"
.BodyFormat = olFormatHTML
.Subject = "Ticket #: " & rs![Name of Column2]
.HTMLBody = "text"
MailOutLook.SentOnBehalfOfName = "email_from@dgfgg.com"
.Display
'.Send
End With
Set oEmailItem = Nothing
Set oOutlook = Nothing
rs.MoveNext
End If
Loop
Else
'do nothing
End If
End Function
...
Рейтинг: 0 / 0
13.04.2016, 10:23
    #39214346
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
рассылка писем из MS Access 2010: 1 ID контракта = 1 письмо = 1 участник(получатель)
Вообще-то на форуме есть средства для форматирования текста
Код: vbnet
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.
Function SendEmail()
' on Error GoTo Exit_Function
Dim oOutlook As Outlook.Application
Dim oEmailItem As Outlook.MailItem

Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("Table Name")
If rs.RecordCount > 0 Then
   rs.MoveFirst
   Do Until rs.EOF
      If IsNull(rs![Name of Column1]) Then
         rs.MoveNext
      Else
         If oOutlook Is Nothing Then
            Set oOutlook = New Outlook.Application
         End If
         Set oEmailItem = oOutlook.CreateItem(olMailItem)
         With oEmailItem

            .To = Left(rs![Name of Column1], 7)
            .cc = "email_cc@dgfgg.com"
            .BodyFormat = olFormatHTML
            .Subject = "Ticket #: " & rs![Name of Column2]
            .HTMLBody = "text"
            MailOutLook.SentOnBehalfOfName = "email_from@dgfgg.com"
            .Display
            '.Send
        End With
        Set oEmailItem = Nothing
        Set oOutlook = Nothing
        rs.MoveNext
   End If
   Loop
Else
   'do nothing
End If
End Function 
...
Рейтинг: 0 / 0
13.04.2016, 13:19
    #39214616
SangYong
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
рассылка писем из MS Access 2010: 1 ID контракта = 1 письмо = 1 участник(получатель)
если не аутлоком (самый управляемый из VBA), то батом - у него хорошо прописанная командная строка, которая передается в работающий экземпляр бата, если он запущен....или библиотека штатная CDO - я правда не нашел куда она логи о работе пишет...других почтовых прог не ковырял, хотя с трекеров накачал...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / рассылка писем из MS Access 2010: 1 ID контракта = 1 письмо = 1 участник(получатель) / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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