powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Рассылка писем с Access с интервалом
9 сообщений из 9, страница 1 из 1
Рассылка писем с Access с интервалом
    #39435457
quickstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Вот такой код использую для рассылки:
Код: 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
Рассылка писем с Access с интервалом
    #39435504
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quickstarВОПРОС 1:...
ВОПРОС 2:....

сколько соберешь в строку столько и уйдет...
будешь брать по одному из набора отправлять - будут уходить по одному,
будешь порциями собирать по 20 и отправлять - будут уходить по 20...
...
Рейтинг: 0 / 0
Рассылка писем с Access с интервалом
    #39435576
quickstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
очень мудрый ответ.
А как кодом задать собирать только определенное количество и отправлять порциями?
...
Рейтинг: 0 / 0
Рассылка писем с Access с интервалом
    #39435600
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
quickstarА как кодом задать собирать только определенное количество и отправлять порциями?В твоём цикле делаешь отсчёты по 20 адресов и отправляешь, или по 1 адресу, при этом делаешь приостановку кода (заданный временной (?) интервал), например, функцией Sleep.
...
Рейтинг: 0 / 0
Рассылка писем с Access с интервалом
    #39435610
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте использовать для отсылки писем Outlook. Как это сделать посмотрите вот здесь
...
Рейтинг: 0 / 0
Рассылка писем с Access с интервалом
    #39435942
quickstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Буду Вам благодарен за пример: как кодом сделать циклы по 20 адресов?
...
Рейтинг: 0 / 0
Рассылка писем с Access с интервалом
    #39435943
quickstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Joss, спасибо, очень мощный и хороший инструмент. И в тоже время я не программист, перенастроить под свои задачи вряд ли быстро смогу. Поэтому продолжаю искать как сделать отправку партиями.
Партии по 20 шт нужны только из-за того, что у мейла и яндекса такие ограничения на массовую рассылку установлены.
...
Рейтинг: 0 / 0
Рассылка писем с Access с интервалом
    #39436227
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Рассылка писем с Access с интервалом
    #39436228
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Рассылка писем с Access с интервалом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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