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

C# 使用Google SMTP在Azure Webjob中发送电子邮件,c#,azure,smtpclient,azure-webjobs,C#,Azure,Smtpclient,Azure Webjobs,我已经编写了一个简单的控制台应用程序,使用WebJobs从Azure发送测试电子邮件,但是当作业说它已成功运行时,电子邮件从未到达。该应用程序在本地运行时工作正常 代码如下: static void SendMail() { var smtp = new SmtpClient { Host = "smtp.gmail.com", Port = 587, EnableSsl =

我已经编写了一个简单的控制台应用程序,使用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中调试,因此无法了解发生了什么

谁能看出我做错了什么

干杯,
Kevin。

默认情况下,Webjobs会将主函数签名作为入口点。这就像你经常使用的控制台。如果你把任何
控制台。写
行,它也会输出

public class Program
{
    public static void Main(string[] args)
    {
        //your code...
    }
}
转到你的WebApp blade所有设置并向下滚动,你应该有一个Webjobs项目,并加载你的Webjob,现在双击日志列上的链接:

现在,您应该能够切换输出并查看webjob的控制台输出

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

如果无法查看日志链接,请尝试打开WebApp(顶部工具栏)中的“工具”部分,滚动到Kudu并打开它

然后转到工具>Webjobs仪表板。你的工作应该列在那里

编辑


看到报告的错误后,问题是Azure环境与您的计算机不同。谷歌可能基于来自未知来源的访问阻止了这种使用。检查您的手机,并尝试关闭。如果失败,请启用登录。尽管我建议您使用其他服务发送邮件,例如或甚至。

您是否使用?不,只是一个控制台应用程序。您好,我的应用程序确实有一个主要功能,可以调用发送邮件功能。抱歉,因为我在您的代码中没有看到它,我不知道。如果你不放它,它不会触发任何代码。你看到输出上的控制台行了吗?这就是我看不到任何输出的地方。我转到门户网站上的webjob并运行它,然后弹出消息说它已成功完成。好的,我编辑了我的答案,以便您可以查看哪里可以检查输出。Hanks将尝试并返回报告。