Мне нужно отправлять электронные письма каждые 10 секунд в течение примерно 2 минут, но я хотел бы запланировать, чтобы это происходило, начиная с определенного времени (8:59) и заканчивая около определенного времени (9:01).

Я должен убедиться, что электронное письмо отправляется начиная с 8:59 для первого и отправлять одно и то же электронное письмо каждые 10 секунд (с интервалом), но мне нужно, чтобы оно заканчивалось в 9:01 или около того.

Я использую Outlook для своего почтового клиентского программного обеспечения, и я являюсь локальным администратором на моем ПК - я не являюсь сетевым администратором, если это кому-то важно.

Кто-нибудь знает программу или метод выполнения этой задачи? Я в порядке с использованием приложения, которое может сделать то или иное, возможно, также может изменить отметку времени.

1 ответ1

3

Автоматически отправлять несколько писем из Outlook в определенное время

Мне нужно отправлять электронные письма каждые 10 секунд в течение примерно 2 минут, но я хотел бы запланировать, чтобы это происходило, начиная с определенного времени (8:59) и заканчивая около определенного времени (9:01).

Я должен убедиться, что электронное письмо отправляется начиная с 8:59 для первого и отправлять одно и то же электронное письмо каждые 10 секунд (с интервалом), но мне нужно, чтобы оно заканчивалось в 9:01 или около того.

Ниже я перечислил ДВА варианта автоматической отправки писем в определенное время.

Используйте sendEmail, Batch Script и планировщик задач Windows

Один из способов (в нижней части моего ответа) - планирование пакетного сценария для отправки по настраиваемому расписанию с помощью планировщика задач Windows с приложением sendEmail .

Я установил логику пакетного сценария ниже для сценария sendEmail, чтобы в нем был счетчик, который начинается с 0 и заканчивается на 12 с примерно 10 секундами между каждой следующей старшей цифрой, считая на 1.

(Это означает, что вы захотите запустить этот скрипт в точное время и в секунду, в которую вы хотите его запустить, и он будет отправлять каждые 10 секунд до 2 минут (например, 8:59:00 AM) после этого момента.)

Похоже, что планировщик заданий Windows не настолько детализирован с планированием или запуском задачи с точностью до секунды (кажется, что это предел в одну минуту). Я поместил 120-секундный таймер в логику пакетного сценария, приведенного ниже, и он будет отправлять электронное письмо каждые 10 секунд, пока не будет подсчитано до 120 секунд (или двух минут), а затем завершится.

Получение и отправка sendEmail по расписанию с помощью пакетного скрипта

Информация sendEmail

Запланированный пакетный скрипт с sendEmail

(У вас должна получиться скачать и запустить вышеупомянутую "Нет TLS" для приложения sendEmail, которое вы запланируете для отправки писем с помощью пакетного сценария, вызова его из командной строки и планирования с помощью планировщика задач Windows - если у вас есть проблемы или вам нужно пройти аутентификацию с помощью TLS, я добавлю пример сценария, как это сделать так же, если это необходимо.)

(Когда вы загружаете Zip-файл по указанным ссылкам, просто поместите exe файл в каталог Windows в переменной окружения PATH(например, %SYSTEMROOT%\System32) или явно назовите его полным путем(например, "C:\SendEmail\sendEmail.exe") Логика примера пакетного сценария ожидает его в расположении переменной среды PATH . Если вам нужна логика для явного указания на нее, укажите полный путь, по которому вам нужно ссылаться на exe и я тоже добавлю пример.)

@ECHO OFF
::: --// Set the counter variable to zero when script begins
SET Counter=0
GOTO :okNowReallySendEmail

:SendEmail
::: --// Add 1 to counter variable to know when it gets to 12 for every 10 seconds is two minutes 8:59 - 9:01
SET /A Counter=%Counter%+1

::: --// Ping delay to loopback roughly 10 second count
PING -n 10 127.0.0.1 > NUL

::: --// End if counter is 12 as that's 12 times 10 which equals 120 seconds roughly
IF %Counter%==12 GOTO EOF

:okNowReallySendEmail
SET EMAILSERVER=emailserver.domain.com
SET subject=This is my subject
SET FromAddress=YourEmailAddress@Domain.com
SET ReplyAddress=YourEmailAddress@Domain.com
SET ToAddress=ToEmailAddress@Domain.com
SET EMAILBODY1=This is my email body paragraph1
SET EMAILBODY2=This is my email body paragraph2
SET Signature=My Name
SENDEMAIL -f %FromAddress% -t %ToAddress% -u %subject% -m "%EMAILBODY1%<br />  <br />%EMAILBODY2%<br />  <br />%Signature%" -s %EMAILSERVER%:25 -o message-content-type=html reply-to=%ReplyAddress%
GOTO :SendEmail

Диспетчер задач

Посмотрите этот ответ здесь для получения полной информации о том, какие опции вы должны выбрать при планировании этого задания с помощью планировщика заданий WindowsВарианты выбора с помощью настройки заданий планировщика заданий

(Не забудьте поднять этот ответ, если он также полезен)


Использовать задержку Outlook или планировать отправку сообщений

Второй способ - в Outlook (2010 и 2013 гг.) Используется функция « Задержка» или «Расписание отправки сообщений», которая немного менее специфична для части планирования времени (но не для второй).

Когда вы говорите Outlook не отправлять раньше определенного времени в определенную дату, он будет отправлять, как только почтовые сообщения Outlook пытаются отправить элементы очереди, когда это происходит в это время или позже, когда он запускается.

Я видел, что электронная почта, отправленная с помощью этого метода, сохраняла дату и время фактического времени, когда вы отправили эти параметры, и нажимала кнопку Отправить, а не время, которое вы указали, чтобы оно не запускалось раньше. Когда вы нажимаете Отправить, чтобы отправить его, он просто помещается в очередь исходящих сообщений Outlook до этого времени, но не раньше.

Outlook 2013

Outlook 2013

Outlook 2010

Outlook 2010

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .