发送电子邮件捕获错误

时间:2018-07-17 16:36:18

标签: c# email

除了未发送电子邮件外,如何拍摄?

我有一个发送电子邮件的课程,如下所示:

public class Email {
 private SmtpClient SMTPCliente;
 private string From;

 public Email(string smtp, int port, bool ssl = false) {
  SMTPCliente = new SmtpClient(smtp, port);
  SMTPCliente.EnableSsl = ssl;
  SMTPCliente.DeliveryMethod = SmtpDeliveryMethod.Network;
  SMTPCliente.Timeout = 5000;
 }

 public void Login(string username, string password) {
  From = username;
  SMTPCliente.Credentials = new NetworkCredential(username, password);
 }

 public void Send(string message, string assunto, string destinatario, string attach = "") {
  MailMessage msg = new MailMessage();
  msg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
  msg.IsBodyHtml = true;
  msg.From = new MailAddress(From);
  msg.Body = message;
  msg.Subject = assunto;
  msg.To.Add(destinatario);
  if (!string.IsNullOrEmpty(attach))
   msg.Attachments.Add(new Attachment(attach));

  SMTPCliente.Send(msg);

  //msg.Dispose();
  //msg.Attachments.Dispose();
 }

我正在使用try,catch块尝试捕获异常,但是什么也没有发生……程序无限运行并且不会引发任何错误。

try {
 Email email = new Email("smtp.live.com", 10);
 email.Login("this@gmail.com", "password");
 email.Send("My message", "Assunto", "destino@email.com");
} catch (FormatException) {
 //invalid email pattern
 //A cadeia de caracteres especificada não está no formato necessário para um endereço de email.
} catch (ArgumentException) {
 //no attachment
 //O parâmetro 'fileName' não pode ser uma cadeia de caracteres vazia.
} catch (Exception ex) {
 MessageBox.Show(ex.Message.ToString());
}

虚拟smtp数据仅用于案例

0 个答案:

没有答案