Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Рассылка писем с Access с интервалом / 9 сообщений из 9, страница 1 из 1
09.04.2017, 16:16
    #39435457
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассылка писем с Access с интервалом
Добрый день!
Вот такой код использую для рассылки:
Код: 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.
Private Sub Êíîïêà0_Click()

Dim rs As DAO.Recordset
Dim Emails As String

Set rs = CurrentDb.OpenRecordset("SELECT Email FROM EmailKlient")
rs.MoveFirst

Do While (Not rs.EOF)

If Not IsNull(rs!Email) Then
Emails = Emails & rs!Email & "; "
End If

rs.MoveNext
Loop
rs.Close

Emails = Left(Emails, Len(Emails) - 2)

DoCmd.SendObject _
    acSendReport, _
    "EmailKlient", _
    acFormatHTML, _
    Emails, _
    , _
    , _
    "Subject", _
    "Message", _
    True


End Sub



ВОПРОС 1: как задать параметр, чтобы письма уходили по одному с заданным интервалом?
ВОПРОС 2: как задать параметр, чтобы письма уходили не разом всем получателям, а по 20 шт в одном письме, следующие 20 во втором письме и т.д.?
...
Рейтинг: 0 / 0
09.04.2017, 18:55
    #39435504
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассылка писем с Access с интервалом
quickstarВОПРОС 1:...
ВОПРОС 2:....

сколько соберешь в строку столько и уйдет...
будешь брать по одному из набора отправлять - будут уходить по одному,
будешь порциями собирать по 20 и отправлять - будут уходить по 20...
...
Рейтинг: 0 / 0
10.04.2017, 05:22
    #39435576
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассылка писем с Access с интервалом
очень мудрый ответ.
А как кодом задать собирать только определенное количество и отправлять порциями?
...
Рейтинг: 0 / 0
10.04.2017, 08:21
    #39435600
\\\\
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассылка писем с Access с интервалом
quickstarА как кодом задать собирать только определенное количество и отправлять порциями?В твоём цикле делаешь отсчёты по 20 адресов и отправляешь, или по 1 адресу, при этом делаешь приостановку кода (заданный временной (?) интервал), например, функцией Sleep.
...
Рейтинг: 0 / 0
10.04.2017, 08:50
    #39435610
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассылка писем с Access с интервалом
Попробуйте использовать для отсылки писем Outlook. Как это сделать посмотрите вот здесь
...
Рейтинг: 0 / 0
10.04.2017, 15:39
    #39435942
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассылка писем с Access с интервалом
Буду Вам благодарен за пример: как кодом сделать циклы по 20 адресов?
...
Рейтинг: 0 / 0
10.04.2017, 15:41
    #39435943
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассылка писем с Access с интервалом
Joss, спасибо, очень мощный и хороший инструмент. И в тоже время я не программист, перенастроить под свои задачи вряд ли быстро смогу. Поэтому продолжаю искать как сделать отправку партиями.
Партии по 20 шт нужны только из-за того, что у мейла и яндекса такие ограничения на массовую рассылку установлены.
...
Рейтинг: 0 / 0
11.04.2017, 05:06
    #39436227
\\\\
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассылка писем с Access с интервалом
quickstar...Поэтому продолжаю искать как сделать отправку партиями.
Партии по 20 шт нужны только из-за того, что у мейла и яндекса такие ограничения на массовую рассылку установлены.
Попробуй так. Сам я написав, код не тестировал.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)'это в самом верху модуля должно быть

Private Sub Кнопка0_Click()
Dim Emails As String
    With CurrentProject.Connection.Execute("SELECT Email FROM EmailKlient WHERE Not Email Is Null;")
            If .BOF And .EOF Then .Close: Exit Sub 'нет адресов
            Do Until .EOF
                Emails = .GetString(adClipString, 20, , ";")
                DoCmd.SendObject acSendReport, "EmailKlient", acFormatHTML, Left$(Emails, Len(Emails) - 1), , , "Subject", "Message", True
                DoEvents
                Sleep 5000  ' 5000 миллисекунд = 5 секунд паузы в выполнении кода. Выстави требуемое сам.
            Loop
        .Close
    End With
End Sub
...
Рейтинг: 0 / 0
11.04.2017, 05:11
    #39436228
\\\\
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассылка писем с Access с интервалом
Upd
Добавить
Код: vbnet
1.
2.
3.
4.
5.
Private Sub Кнопка0_Click()
Dim Emails As String
Const adClipString& = 2'на случай не подключённой библиотеки
    With CurrentProject.Connection.Execute("SELECT Email FROM EmailKlient WHERE Not Email Is Null;")
...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Рассылка писем с Access с интервалом / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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