簡體   English   中英

System.dll中發生了類型為'System.Net.Mail.SmtpException'的未處理的異常

[英]An unhandled exception of type 'System.Net.Mail.SmtpException' occurred in System.dll

我正在嘗試有關如何通過.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");

我正在使用相同的電子郵件。 但是我認為這不應該是一個問題。 知道我在做什么錯嗎?

這是我幾年前編寫的用於測試的工作示例(使用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服務器找到正確的設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM