Это не попадает в ловушку, когда я отправляю неправильную (не существует) почту на С#

Я могу отправлять письма без проблем. Но также мой код должен контролировать правильность почтового адреса. Если нет, он должен войти в блок catch. Но это не идет в улов. Таким образом, кажется, что все письма, которые я пытаюсь отправить, отправляются, даже если почтовые адреса неверны. введите код здесь. Из-за этого я не могу понять, все ли письма отправляются на почтовые адреса.

 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
Я думаю, что ОП ищет исключение, когда электронное письмо имеет правильный формат, но не существует. Он поместил это в заголовок своего вопроса :)   -  person CodeNotFound    schedule 11.06.2018
comment
Предполагая, что вы хотите обнаружить ошибку неизвестного получателя, которую вам нужно будет доставить непосредственно на сервер, указанный в записях MX принимающих доменов, вы, скорее всего, в настоящее время ретранслируете через другой сервер, который просто подтверждает ваш запрос на отправку.   -  person Alex K.    schedule 11.06.2018
comment
Возможный дубликат Могу ли я проверить, существует ли адрес электронной почты, используя .net?   -  person CodeNotFound    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