Как отложить отправку электронного письма? Нажмите кнопку, чтобы отправить СЕЙЧАС, но подождите до 18:00, пока электронное письмо не будет отправлено - PullRequest
0 голосов
/ 24 апреля 2009

У меня есть php-скрипт, который выполняет некоторую обработку (создает PDF-файлы с советами по денежным переводам, счета-фактуры за собственные счета, файл Sage CSV и т. Д.) И в конце выводит экран с формой, в которой имена и электронная почта появляются адреса платных людей. Пользователь выбирает имена, установив флажки, и затем появляется кнопка «Отправить», которая отправляет электронные письма с прикрепленными уведомлениями о денежных переводах и счетами для самостоятельного выставления счетов. Все это прекрасно работает, но теперь они решили, что, нажимая кнопку «Отправить», они хотели бы, чтобы электронные письма отправлялись НЕ сразу, а в 18:00.

Можно ли установить время отправки сообщения в заголовке SMTP? Можно ли настроить сервер MS Exchange таким образом, чтобы электронные письма от определенного отправителя удерживались до определенного времени, прежде чем они будут отправлены? Отдел ИТ поддержки утверждают, что это было возможно в прежние времена коммутируемых подключений, когда отправлять вещи ночью было просто дешевле ... но эта функциональность была удалена. Это правда? Я понятия не имею, насколько сложна задача под рукой. Это кажется очень простым, и я думаю, что это действительно задача для ребят из службы поддержки. Но, может быть, я ошибаюсь?

Если это невозможно настроить на стороне сервера Exchange, как я могу добиться требуемой функциональности? И, нет, это не точный дубликат этого вопроса . Я посмотрел на это, но, похоже, он не ответил на мои вопросы. Любая помощь с благодарностью!

Редактировать


Apache, работающий на MS Windows Server 2003. База данных Oracle 10g. Там не будет установлен CRON. Таблица очереди электронной почты также должна хранить все вложения. Я хотел бы избежать этого любой ценой. Нет способа указать время отправки в заголовке?

Ответы [ 3 ]

10 голосов
/ 24 апреля 2009

Вы можете сохранить эти письма в базе данных. А затем создайте PHP-файл cronjob, который выполняется каждые несколько минут, чтобы проверить, есть ли электронные письма для отправки в базу данных «очереди».

Вот учебник на что-то вроде этого.

2 голосов
/ 14 мая 2009

На самом деле вы можете сделать это. Если вы используете сервер Exchange 2003, вы можете настроить другой SMTP-коннектор. В параметрах доставки есть способ изменить его, отправляя всегда любой выбранный вами шоудль.

Вот хороший учебник по настройке. текст ссылки

Одна вещь, которую вам нужно будет сделать, - это когда вы создаете новый SMTP-коннектор, установите для него другой порт для прослушивания. Таким образом, вы можете отправить на этот вместо стандартного разъема.

2 голосов
/ 24 апреля 2009

Windows (не серверные выпуски, по крайней мере) имеет элемент панели управления «Запланированные задачи», похожий на CRON. Просто кратко рассмотрев его, вы, вероятно, можете написать сценарий PHP, который отправляет вашу почту «сейчас», но запускать ее, используя CLI, в любое время, когда вы хотите отправить почту, используя запланированные задачи.

...