2015-03-10 4 views
0

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

Идея, чтобы избежать использования службы Windows или дополнительную таблицу в БД

MailMessage message = new MailMessage("[email protected]", "[email protected]"); 
message.BodyEncoding = System.Text.Encoding.UTF8; 
message.IsBodyHtml = true; 
message.Subject = "Publishing Notification"; 
message.Body = "tes"; 
message.DeliveryNotificationOptions = DeliveryNotificationOptions.Delay; 
SmtpClient client = new SmtpClient("xxxx", Int32.Parse("25")); 
client.Send(message); 
+0

Возможный дубликат [Откладывание отправки писем в C#] (http://stackoverflow.com/questions/556667/delaying-the-sending-of-emails-in-c-sharp) –

+0

Хорошо, но мой клиент хотелось бы избежать такой настройки. Им интересно, есть ли возможность сделать это без WIndows Service или дополнительных таблиц в БД. –

+0

C# не способен на то, что вы предлагаете в своем вопросе. Вам придется полагаться на сервер, чтобы поставить в очередь вашу задержку или какое-то стороннее программное обеспечение (например, Outlook). –

ответ

1

сделать что-то выполнить в данный момент времени является легкой задачей предполагая у вас есть процесс, чтобы провести его. Но похоже, что ваш клиент отказывается туда добраться. Вот два способа приблизиться к этому без:

  • Используйте задания сервера Sql для выполнения задачи почтовой базы данных. Это может быть очень легко на рампе в зависимости от того, откуда поступают данные.
  • Используйте запланированную задачу для выполнения командной строки. Или используйте Sql Job Manager для выполнения программы, если получение задания sql там проще, чем выполнение запланированной задачи.

Quartz.NET - отличная библиотека, и мы используем ее много, но вам по-прежнему нужна постоянно работающая служба для выполнения запланированных задач. Таким образом, если вы можете связать это с вашим веб-приложением, Quartz будет работать, но если нет, тогда вы будете искать письменную службу. И оттуда вам будет лучше просто сделать это запланированной задачей, так как нет причин для этого быть сервисом, отличным от планирования.

Смежные вопросы