使用 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.