类型为';System.Net.Mail.SmtpException';发生在System.dll中

本文关键字:System dll Net 类型 Mail SmtpException | 更新日期: 2023-09-27 18:27:33

我正在尝试关于如何通过.NETC#发送电子邮件的非常简单的教程。然而,当我尝试执行代码时,我得到了以下异常:

System.dll中发生类型为"System.Net.Mail.SmtpException"的未处理异常。其他信息:操作已超时退出

所以我所做的就是找到我想发送邮件的服务器设置。这在我的国家很流行:

Incoming settings
Protocol -> POP
Email address -> username@abv.bg
Username -> username@abv.bg
Password -> password
POP server -> pop3.abv.bg
Security type -> SSL
Server port -> 995
Outgoing server settings
Username -> username@abv.bg
Password -> password
SMTP server -> smtp.abv.bg
Security type -> SSL
Server port -> 465

然后我创建了一个Console project,在我的主要方法中,我有这样的代码:

        SmtpClient client = new SmtpClient("smtp.abv.bg");
        client.Port = 465;
        client.EnableSsl = true;
        client.Timeout = 100000;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.UseDefaultCredentials = false;
        client.Credentials = new NetworkCredential(
         "username@abv.bg", "password");
        MailMessage msg = new MailMessage();
        msg.To.Add("username@abv.bg");
        msg.From = new MailAddress("username@abv.bg");
        msg.Subject = "Test subject";
        msg.Body = "Test test test...";
        client.Send(msg);

由于我没有这方面的经验,我只是尝试你看到的代码。任何地方都没有额外的设置。我认为唯一不应该成为问题的事情,但我认为值得一提的是:

         client.Credentials = new NetworkCredential(
         "username@abv.bg", "password");

这里:

         msg.To.Add("username@abv.bg");

我使用的是同一封电子邮件。但我认为这不应该是个问题。你知道我在这里做错了什么吗?

类型为';System.Net.Mail.SmtpException';发生在System.dll中

这是我几年前为测试写的一个工作示例(使用Gmail)。

public  void sendEmail(string body)
        {
            if (String.IsNullOrEmpty(email))
                return;
            try
            {
                MailMessage mail = new MailMessage();
                mail.To.Add(email);
                mail.To.Add("xxx@gmail.com");
                mail.From = new MailAddress("yyy@gmail.com");
                mail.Subject = "sub";
                mail.Body = body;
                mail.IsBodyHtml = true;
                SmtpClient smtp = new SmtpClient();
                smtp.Host = "smtp.gmail.com"; //Or Your SMTP Server Address
                smtp.Credentials = new System.Net.NetworkCredential
                     ("yyy@gmail.com", "pw"); // ***use valid credentials***
                smtp.Port = 587;
                //Or your Smtp Email ID and Password
                smtp.EnableSsl = true;
                smtp.Send(mail);
            }
            catch (Exception ex)
            {
                print("Exception in sendEmail:" + ex.Message);
            }
        }

我会在Gmail中尝试这个功能,只是为了消除与网络相关的问题,比如防火墙。当这将起作用时,剩下的就是为SMPT服务器找到合适的设置