使用Google SMTP在Azure Webjob中发送电子邮件

时间:2016-03-01 07:50:57

标签: c# azure smtpclient azure-webjobs

我编写了一个简单的控制台应用程序,使用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中进行调试,以便找出正在发生的事情。

任何人都可以看到我做错了什么。

干杯, 凯文。

1 个答案:

答案 0 :(得分:2)

Webjobs默认情况下会将Main函数签名作为入​​口点。它就像您的常规控制台应用程序一样。如果您放置任何Console.Write行,它也会输出。

public class Program
{
    public static void Main(string[] args)
    {
        //your code...
    }
}

转到 WebApp刀片> 所有设置并向下滚动,您应该在加载了Webjob时有一个 Webjobs 项目,现在双击LOGS列上的链接:

enter image description here

现在,您应该可以切换输出并查看webjob的控制台输出。

enter image description here

如果在执行过程中出现任何错误,它们应该在那里。

如果您无法看到LOGS链接,请尝试打开W​​ebApp(顶部工具栏)中的“工具”部分,滚动到 Kudu 并打开它。

enter image description here

然后转到工具> Webjobs信息中心。你的工作应该列在那里。

enter image description here

修改

看到报告的错误后,问题是Azure环境与您的计算机不同。 Google可能会根据来自未知来源的访问来阻止使用。检查您的Less secure settings并尝试关闭。如果失败,请在from a different timezone中启用登录。虽然我建议使用其他服务来发送邮件,例如MailGunSendGrid,甚至是Amazon SES