我正在使用
我想制作一个电子邮件通知程序系统,就像许多网站有谷歌一样。我希望用户能够设置提醒日期,当该日期被点击时,会向他们发送电子邮件。
我不知道该怎么做。
我听说过几种方法,但没有找到任何有关如何操作的教程。
使用Windows调度程序,我认为它不适用于共享托管环境。如果有的话我会更喜欢,但如果有很大差异,那么我就可以忍受这种能力。
我还希望在不久的将来支持SMS消息,以便解决方案应该能够扩展以便尽可能地使用它。
答案 0 :(得分:1)
这个blog post为您的问题提供了一个非常有效(虽然有些“hacky”)解决方案,可以在共享托管环境中运行。这是Jeff在StackOverflow中用来为用户分配徽章的内容(我不知道SO是否仍在使用它)。
对于实际发送电子邮件的代码,您应该浏览Internet,因为有无穷无尽的代码示例如何执行此操作。一个可能的答案可能是:
public void SendEmail()
{
MailMessage loMsg = new MailMessage();
loMsg.From = new MailAddress("from@domain.com");
loMsg.To.Add(new MailAddress("to@domain.com"));
loMsg.Subject = "Subject";
loMsg.Body = "Email Body";
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new System.Net.NetworkCredential("username", "password")
};
smtp.Send(loMsg);
}
看看是否有帮助
答案 1 :(得分:0)
@ chobo2,您可以使用quartz.net检查到期任务(例如,每一分钟),并在任务的截止日期小于当前日期时执行某些操作(如发送电子邮件)任务没有得到通知。
因此,您必须在任务中拥有截止日期属性,并指出是否已通知。 每分钟,您运行代码以查找截止日期小于或等于当前日期的任务,并为每个任务发送通知电子邮件。然后将任务标记为已通知。
问候。