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

Решаю следующую задачу на 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
рассылка писем из MS Access 2010: 1 ID контракта = 1 письмо = 1 участник(получатель)
    #39213708
NBjHCBrc6KlSObm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если почтовый сервер разрешает отправку без шифрования, то можно использовать программу blat: в наши дни он вполне неплохо отправляет письма даже в русской кодировке.
Если сервер требует шифрования, то можно отправлять blat-ом через stunnel.

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

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

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

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

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

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

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


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
рассылка писем из MS Access 2010: 1 ID контракта = 1 письмо = 1 участник(получатель)
    #39214346
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то на форуме есть средства для форматирования текста
Код: 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
рассылка писем из MS Access 2010: 1 ID контракта = 1 письмо = 1 участник(получатель)
    #39214616
SangYong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если не аутлоком (самый управляемый из VBA), то батом - у него хорошо прописанная командная строка, которая передается в работающий экземпляр бата, если он запущен....или библиотека штатная CDO - я правда не нашел куда она логи о работе пишет...других почтовых прог не ковырял, хотя с трекеров накачал...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / рассылка писем из MS Access 2010: 1 ID контракта = 1 письмо = 1 участник(получатель)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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