【发布时间】:2016-01-19 18:43:31
【问题描述】:
我的项目托管在 Azure 上,我想每天早上向忘记在我的应用程序中完成某些任务的用户发送一封电子邮件。
我已经建立了我的电子邮件(使用邮政发送)。如果我自己运行该功能,电子邮件会按预期发送。
我已将 Azure 调度程序配置为运行 HTTPS 操作、get 方法 [https://www.example.com/Email/EmailReminder]。计划的作业报告为成功,但没有电子邮件发送出去。
我以前不必这样做,所以我怀疑我的函数 > 调度程序作业之间缺少链接。我已经搜索了有关如何设置它的代码示例,但我还没有找到解决方案。调度程序期望我不给它什么?
public void EmailReminder()
{
var remCheckOuts = // query code here
into grouped
select new Reminder
{
/// populate viewmodel
});
// send emails
foreach (var i in remCheckOuts)
{
string Full = i.Full;
string FirstName = i.FirstName;
var CheckOutCt = i.CheckOutCt;
dynamic email = new Email("emReminder");
email.FromAdd = "test@test.com";
email.To = "test2@test2.com";
email.NPFirstName = NPFirstName;
email.CheckOutCt = CheckOutCt;
email.Send();
}
}
【问题讨论】:
-
您是否在 web.config as described here 中正确配置了出站 SMTP 端口?提示 - Azure 没有为你提供纯 SMTP 服务器 - 你需要像 SendGrid 这样的第三方,或者如果你想自己动手,你可以启动一个虚拟机。
-
是的 - 如果只是访问运行上述功能,电子邮件将正确发送。但是,我设置用于访问此页面的调度程序运行成功,但没有发送任何内容。我知道我的代码中缺少调度程序正在寻找的东西。如果它是从上面创建一个 cron 作业,我不知道该怎么做....
-
您如何确定电子邮件没有发送出去?您说该作业显示它在作业历史记录中运行,并且当您手动点击链接时,电子邮件就会消失。也许存在身份验证问题?如果是这样,也许these docs 会有所帮助。
-
我已将自己设置为测试的接收者,并且 Azure 站点显示作业运行成功。我会调查这个身份验证问题,也许这就是问题所在。为了测试,我关闭了任何身份验证要求,但也许我遗漏了一些东西!
-
我遇到了身份验证问题。我的原始脚本现在正在发送。谢谢。
标签: c# asp.net-mvc azure postal