我编写了一个简单的控制台应用程序,使用WebJobs从Azure发送测试电子邮件,但是当Job表示已成功运行时,电子邮件永远不会到达。该应用程序在本地运行时工作正常。
这是代码:
static void SendMail()
{
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential("mygmail@gmail.com", "*********")
};
MailAddress to = new MailAddress("toemail@jaddress.net.nz");
MailAddress from = new MailAddress("fromemail@jaddress.net.nz");
MailMessage mail = new MailMessage(from, to);
mail.Subject = "Test Email";
mail.Body =
("This is a test @\n");
Console.WriteLine("Sending email...");
smtp.Send(mail);
Console.WriteLine();
}
}
我不确定如何在Azure中进行调试,以便找出正在发生的事情。
任何人都可以看到我做错了什么。
干杯, 凯文。
答案 0 :(得分:2)
Webjobs默认情况下会将Main函数签名作为入口点。它就像您的常规控制台应用程序一样。如果您放置任何Console.Write
行,它也会输出。
public class Program
{
public static void Main(string[] args)
{
//your code...
}
}
转到 WebApp刀片> 所有设置并向下滚动,您应该在加载了Webjob时有一个 Webjobs 项目,现在双击LOGS列上的链接:
现在,您应该可以切换输出并查看webjob的控制台输出。
如果在执行过程中出现任何错误,它们应该在那里。
如果您无法看到LOGS链接,请尝试打开WebApp(顶部工具栏)中的“工具”部分,滚动到 Kudu 并打开它。
然后转到工具> Webjobs信息中心。你的工作应该列在那里。
修改强>
看到报告的错误后,问题是Azure环境与您的计算机不同。 Google可能会根据来自未知来源的访问来阻止使用。检查您的Less secure settings并尝试关闭。如果失败,请在from a different timezone中启用登录。虽然我建议使用其他服务来发送邮件,例如MailGun或SendGrid,甚至是Amazon SES。