使用 Google SMTP 在 Azure Webjob 中发送电子邮件
Sending email in Azure Webjob using Google SMTP
我已经编写了一个简单的控制台应用程序来使用 WebJobs 从 Azure 发送测试电子邮件,但是当作业说它已经 运行 成功时,电子邮件从未到达。该应用程序在 运行 本地时运行良好。
代码如下:
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 中进行调试,因此不知所措以了解发生了什么。
谁能看出我做错了什么。
干杯,
凯文.
默认情况下,Webjobs 查找 Main 函数签名作为入口点。这就像您的常规控制台应用程序。如果你输入任何 Console.Write
行,它也会输出。
public class Program
{
public static void Main(string[] args)
{
//your code...
}
}
转到您的 WebApp blade > 所有设置 并向下滚动,您应该有一个 已加载 Webjob 的 Webjobs 项,现在双击 LOGS 列中的 link:
现在,您应该能够切换输出并查看 Web 作业的控制台输出。
如果在执行过程中有任何错误,它们应该在那里。
如果您看不到日志 link,请尝试打开 WebApp(顶部工具栏)中的“工具”部分,滚动至 Kudu 并打开它。
然后转到工具 > Webjobs 仪表板。你的工作应该列在那里。
编辑
看到报错后,问题是Azure环境和你的电脑不一样。 Google 可能会阻止基于来自未知来源的访问的使用。检查你的 Less secure settings and try it with Off. If that fails, enable login in from a different timezone. Though I'd advice to use another services to send mail, like MailGun or SendGrid, even Amazon SES.
我已经编写了一个简单的控制台应用程序来使用 WebJobs 从 Azure 发送测试电子邮件,但是当作业说它已经 运行 成功时,电子邮件从未到达。该应用程序在 运行 本地时运行良好。
代码如下:
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 中进行调试,因此不知所措以了解发生了什么。
谁能看出我做错了什么。
干杯, 凯文.
默认情况下,Webjobs 查找 Main 函数签名作为入口点。这就像您的常规控制台应用程序。如果你输入任何 Console.Write
行,它也会输出。
public class Program
{
public static void Main(string[] args)
{
//your code...
}
}
转到您的 WebApp blade > 所有设置 并向下滚动,您应该有一个 已加载 Webjob 的 Webjobs 项,现在双击 LOGS 列中的 link:
现在,您应该能够切换输出并查看 Web 作业的控制台输出。
如果在执行过程中有任何错误,它们应该在那里。
如果您看不到日志 link,请尝试打开 WebApp(顶部工具栏)中的“工具”部分,滚动至 Kudu 并打开它。
然后转到工具 > Webjobs 仪表板。你的工作应该列在那里。
编辑
看到报错后,问题是Azure环境和你的电脑不一样。 Google 可能会阻止基于来自未知来源的访问的使用。检查你的 Less secure settings and try it with Off. If that fails, enable login in from a different timezone. Though I'd advice to use another services to send mail, like MailGun or SendGrid, even Amazon SES.