2015-11-18 6 views
0

Я работаю над приложением (в Delphi XE8), которое, среди прочего, позволяет пользователю отправлять электронные письма. Решение, которое я выбрал, - это просто сохранить электронную почту в виде текстового файла с полем «От:» и «Кому:» в каталоге пикапа SMTP, который работал до сих пор. Я использую виртуальный SMTP-сервер, настроенный в IIS 6.Способ задержки отправки почты SMTP исходящей почты

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

+1

AFAIK IIS не почтовый сервер. Вы используете Exchange? – mjn

+0

Привет @mjn, нет, я не использую Exchange. Я настроил виртуальный SMTP-сервер, используя IIS на моем сервере. Извините за непонятность, я отредактирую свой вопрос. – MrKiloByte

+1

Я не думаю, что такая функция существует в IIS6. Возможно, вы захотите сохранить файлы в другом каталоге и сделать выделенную службу отправки, переместите их в каталог пикапа SMTP на основе вашего времени. ваша информация о времени может быть заголовком в этом текстовом файле, который ваша служба пикапа будет удалять, прежде чем переместить его в каталог пикапа SMTP. – kobik

ответ

0

Попробуйте использовать протокол IMAP4 (стандартный протокол для обработки почтовых сообщений и папок для почтового клиента на основе сервисов) вместо SMTP. Затем используйте почтовый клиент, который поддерживает отсрочку отправки сообщений, и используйте его скрипты, чтобы настроить отправку сообщения так, как вы хотите.

Если ваша программа продолжает работать до времени отправки, вы можете также создать поток, который ждет до времени, когда вы хотите, чтобы сообщение было отправлено, но я полагаю, что это слишком просто :)

+0

Спасибо за ваш ответ! Это кажется немного неустойчивым, так как приложение будет установлено на компьютере клиента, и, хотя они с удовольствием настроили для меня папку для отправки SMTP, они вряд ли изменят свои почтовые программы только для этого приложения. Я думаю, мне придется пойти с поточным подходом! Но спасибо за подсказку, мне придется узнать немного больше об IMAP4! – MrKiloByte

+1

почтовый клиент не должен размещаться локально, он может быть веб-интерфейсом, подобным gmail. См. Эту тему для примера кодирования: http://stackoverflow.com/questions/33461085/delphi-indy-saving-gmail-draft – Jur

+0

Спасибо @Jur за вас время и отличный пример! Я обязательно буду вдаваться в ваши предложения больше. – MrKiloByte

1

Если ваш код может правильно определить поля From And To, почему бы просто не добавить запись Time: в текстовый файл и пропустить этот файл, если время не было достигнуто?

+0

Спасибо за ваш ответ! Наверное, я мог бы хранить предполагаемые письма в порядке отправки и через отдельный поток «выпускать» их, когда придет время ... Я надеялся, что есть немного более удобный способ сделать это. – MrKiloByte