Global.asax中的代码适用于IIS,但是当我将应用程序部署到Azure时,它无效。
protected void Application_Start(object sender, EventArgs e)
{
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 60000;
timer.AutoReset = true;
timer.Elapsed += new ElapsedEventHandler(NewCandidates);
timer.Enabled = true;
}
public void NewCandidates(object source, System.Timers.ElapsedEventArgs e)
{
SendEmail.MailSender mail = new MailSender();
mail.EmailSender();
}
全部因为Azure不支持电子邮件触发器。我在上面创建了Web应用程序以发送smtp电子邮件并作为云服务发布到Azure。每个星期五都应该发送一封电子邮件,其中包含来自候选人表格的本周记录。安排电子邮件的任何事情都有帮助,但我想我不能去SendGrid。
答案 0 :(得分:0)
您应该考虑将代码移出以利用Azure Scheduler(http://www.windowsazure.com/en-us/services/scheduler/)。与使用上述方法相比,这将是一种更可靠的调度服务。
可靠的邮件传递实际上只能通过使用SendGrid - 其他任何东西都可能被一个黑名单或其他黑名单反弹。您可以使用SendGrid免费发送每月最多25,000封电子邮件(http://sendgrid.com/windowsazure.html)。
如果您无法使用SendGrid,那么您可以使用Azure之外的SMTP中继(例如,在您自己的网络上),您可以退回邮件,但即使这可能不起作用,除非您修改邮件以删除原始IP / hostname。