มันจะไม่เข้าสู่ catch เมื่อฉันส่งเมลผิด (ไม่มี) ด้วย C#

ฉันสามารถส่งอีเมลได้โดยไม่มีปัญหา แต่รหัสของฉันก็ควรควบคุมด้วยว่าหากที่อยู่อีเมลถูกต้อง ถ้าไม่เช่นนั้นควรเข้าไปในบล็อกจับ แต่มันไม่เข้าจับ ดูเหมือนว่าอีเมลทั้งหมดที่ฉันพยายามส่งถูกส่งไปแล้ว แม้ว่าที่อยู่อีเมลจะไม่ถูกต้องก็ตาม โปรดป้อนรหัสที่นี่ ด้วยเหตุนี้ฉันจึงไม่รู้ว่าอีเมลทั้งหมดถูกส่งไปยังที่อยู่อีเมลหรือไม่

 using (var smtp = new SmtpClient())
                {
                    smtp.Host = emailSetting.Host;
                    smtp.EnableSsl = emailSetting.EnableSSL ?? true;
                    smtp.Port = Convert.ToInt32(emailSetting.Port);

                    smtp.UseDefaultCredentials = false;
                    var credentials = new NetworkCredential
                    {
                        UserName = emailSetting.EmailAdress,
                        Password = emailSetting.Password
                    };
                    smtp.Credentials = credentials;

                    int sendMailCount = 0;
                    var x = serviceEmail.GetQueueEmail();
                    foreach (var email in x.ToList())
                    {
                        using (var mailMessage = new MailMessage())
                        {
                            try
                            {
                                mailMessage.From = new MailAddress(emailSetting.EmailAdress, emailSetting.FromDisplayName);
                                mailMessage.To.Add("[email protected]");//wrong email address
                                mailMessage.Subject = email.Subject;
                                mailMessage.IsBodyHtml = true;
                                mailMessage.Body = email.Body;
                                email.Status = EmailStatus.SEND;
                                smtp.Send(mailMessage);


                            }
                            catch (Exception ex)
                            {

                                email.Status = EmailStatus.FAILED;
                                continue;
                            }
                        }
                    }

person T.Yuce    schedule 11.06.2018    source แหล่งที่มา
comment
เหตุใดคุณจึงคาดหวังให้ [email protected] ได้รับการพิจารณาว่าเป็นที่อยู่อีเมลที่ผิด/ไม่ถูกต้อง มันใช้ได้อย่างสมบูรณ์แบบจากมุมมองมาตรฐานของที่อยู่อีเมล   -  person JayV    schedule 11.06.2018
comment
ฉันไม่รู้ว่าอีเมลทั้งหมดถูกส่งไปยังที่อยู่อีเมลหรือไม่ ใช่ ซึ่งเป็นเรื่องปกติ หากคุณต้องการทราบว่ามีการส่งและอ่านอีเมลหรือไม่ คุณจะต้องคลิกลิงก์หรือคล้ายกัน เป็นเรื่องปกติที่จะไม่รู้ว่าจะเกิดอะไรขึ้นเมื่อคุณส่งอีเมล เพื่อเป็นการอุปมา: ถ้าฉันหย่อนจดหมาย 200 ฉบับลงในตู้ไปรษณีย์ ฉันก็ไม่รู้ว่าจะส่งได้หรือเปล่าเช่นกัน   -  person Marc Gravell    schedule 11.06.2018
comment
[email protected] เป็นอีเมลที่สมบูรณ์แบบซึ่งอาจมีอยู่ ลองใส่สตริงว่างแล้วลองอีกครั้ง   -  person styx    schedule 11.06.2018
comment
ฉันคิดว่า OP กำลังมองหาข้อยกเว้นเมื่ออีเมลอยู่ในรูปแบบที่ถูกต้อง แต่ไม่มีอยู่ เขาวางไว้ในชื่อเรื่องของคำถาม :)   -  person CodeNotFound    schedule 11.06.2018
comment
สมมติว่าคุณต้องการตรวจพบข้อผิดพลาดของผู้รับที่ไม่รู้จัก คุณจะต้องส่งโดยตรงไปยังเซิร์ฟเวอร์ที่ระบุในระเบียน MX ของโดเมนที่รับ เป็นไปได้มากว่าคุณส่งต่อผ่านเซิร์ฟเวอร์อื่นซึ่งเพียงรับทราบคำขอส่งของคุณ   -  person Alex K.    schedule 11.06.2018
comment
@JayV รูปแบบอีเมลไม่สำคัญ โดยปกติ เมื่อไม่สามารถส่งเมลได้ ข้อผิดพลาดจะเข้าไปอยู่ในบล็อกโค้ด แต่มันเข้าไม่ได้   -  person T.Yuce    schedule 11.06.2018
comment
จริงๆ แล้วคำถามของฉันไม่ได้อยู่ในรูปแบบอีเมล แต่ฉันกำลังส่งสตริงว่าง อย่างไรก็ตาม การจับไม่ตกอยู่ในบล็อคโค้ด ฉันไม่เข้าใจ.   -  person T.Yuce    schedule 11.06.2018
comment
ฉันใช้ outlook smtp หากฉันป้อนรูปแบบไม่ถูกต้องหรือหากฉันป้อนที่อยู่อีเมลที่ไม่มีอยู่ ดูเหมือนว่าเมลกำลังถูกส่งและสถานะเมลปรากฏว่าส่งอยู่ในรายการบนเพจ การแจ้งเตือนแจ้งว่าไม่สามารถส่งไปยังที่อยู่อีเมล smtp ได้   -  person T.Yuce    schedule 11.06.2018
comment
ผิดและไม่มีอยู่จริงเมื่อพูดถึงที่อยู่อีเมลนั้นไม่เหมือนกัน บังคับ XKCD   -  person NetMage    schedule 12.06.2018