C# 尝试发送电子邮件时出现系统异常

C# 尝试发送电子邮件时出现系统异常,c#,email,exception,smtp,C#,Email,Exception,Smtp,我正试图用c#发送一封电子邮件。一切似乎都正常,没有错误,但当程序尝试发送邮件时,我收到一个异常:“System.exception-exception was not treated” 代码如下: public void sendMail() { SmtpClient client = new SmtpClient(); client.Port = 587; client.Host = "smtp.gmail.com";

我正试图用c#发送一封电子邮件。一切似乎都正常,没有错误,但当程序尝试发送邮件时,我收到一个异常:“System.exception-exception was not treated”

代码如下:

public void sendMail()
    {
        SmtpClient client = new SmtpClient();
        client.Port = 587;
        client.Host = "smtp.gmail.com";
        client.EnableSsl = true;
        client.Timeout = 100;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.UseDefaultCredentials = false;
        client.Credentials = new System.Net.NetworkCredential("mymailaddress@googlemail.com", "mypassword");

        MailMessage mm = new MailMessage("mymailaddress@googlemail.com", "receiveremailaddress", "test", "test");
        mm.BodyEncoding = UTF8Encoding.UTF8;
        mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;


         client.Send(mm); // HERE I GET THE EXCEPTION !!!!!





    }

问题是您的超时时间太短,请尝试:

client.Timeout = 5000;
,但smtp.gmail.com的速度足够快,如果你想使用5000就可以了

也可以根据上面的评论发到你的帖子上;处理您的异常(这是一种非常基本的方法)


坏习惯。任何高于抛出的
的代码都不知道实际发生了什么。如果你不想正确处理这个异常,那就不要抓住它。:)谢谢!是的,超时时间太短了!我把它改成了5000,现在一切都好了perfectly@haddow64,您关于通过将异常打印到控制台来处理异常的评论是错误的建议。除非您打算实际处理错误或将其记录在顶级异常处理程序中,否则应该始终让异常冒泡。
try
{
...
}
catch(Exception ex)
{
Console.Writeline(ex);
}