c# - 发送电子邮件捕获错误
问题描述
除了未发送电子邮件,我如何拍摄?
我有一个发送电子邮件的类,如下:
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 数据仅用于该案例
解决方案
推荐阅读
- javascript - 从突变请求字段构建 GraphQL 查询
- javascript - 当元素存在而不使用 setInterval
- python - 当不满足某些条件时从列表中删除元组
- google-bigquery - 我的 PowerBI 报告(由 Google Bigquery 提供)在线时无法刷新,我做错了什么?
- c - 有效地将文件中的数据送入环形缓冲区
- vb.net - 使用 EWS,CcRecipients 和 DisplayCc 不匹配
- bash - Bash 选择格式
- android - 我是编程新手。我正在尝试制作 android app soundrecoder
- sql - 在where子句中带有大小写的sql
- okta - IOS 10 上 React Native 中的 Okta