📅  最后修改于: 2023-12-03 15:20:09.961000             🧑  作者: Mango
在C#中,我们可以使用SMTP(简单邮件传输协议)来发送电子邮件。发送电子邮件后,我们可能需要检查电子邮件是否已成功发送。在本文中,我们将介绍如何检查电子邮件是否已通过SMTP发送。
在C#中使用SMTP发送电子邮件非常简单。我们可以使用System.Net.Mail
命名空间中的SmtpClient
类来发送电子邮件。下面是一个用于发送电子邮件的示例代码:
using System.Net.Mail;
class Program {
static void Main(string[] args) {
var smtpClient = new SmtpClient("smtp.gmail.com", 587) {
Credentials = new System.Net.NetworkCredential("youremail@gmail.com", "yourpassword"),
EnableSsl = true
};
smtpClient.Send("youremail@gmail.com", "recipient@example.com", "Subject", "Body");
}
}
在上面的代码中,我们使用SmtpClient
类来发送电子邮件。在构造函数中,我们指定了SMTP服务器的地址和端口号(在本示例中为smtp.gmail.com
和587)。在构造函数之后,我们设置了Credentials
属性和EnableSsl
属性。然后,我们使用Send
方法来发送电子邮件。
对于SMTP发送电子邮件,我们可以使用SendAsync
方法而不是Send
方法来异步发送电子邮件。我们还应该监视SendCompleted
事件,以确保我们能够及时获知电子邮件是否成功发送。以下是示例代码:
using System.Net.Mail;
using System.Threading.Tasks;
class Program {
static void Main(string[] args) {
SendEmail().Wait();
}
static async Task SendEmail() {
var smtpClient = new SmtpClient("smtp.gmail.com", 587) {
Credentials = new System.Net.NetworkCredential("youremail@gmail.com", "yourpassword"),
EnableSsl = true
};
using (var message = new MailMessage("youremail@gmail.com", "recipient@example.com", "Subject", "Body")) {
message.IsBodyHtml = true;
await smtpClient.SendMailAsync(message);
}
smtpClient.SendCompleted += (sender, e) => {
if (e.Error != null) {
System.Console.WriteLine("Error sending email: " + e.Error.ToString());
} else {
System.Console.WriteLine("Email sent successfully.");
}
};
}
}
在上面的代码中,我们首先使用SendMailAsync
方法异步发送电子邮件。然后,我们监视SendCompleted
事件,并根据事件处理程序中的结果确定电子邮件是否已成功发送。如果有错误,则打印错误消息,否则打印成功消息。
在本文中,我们介绍了在C#中使用SMTP发送电子邮件并检查电子邮件是否已成功发送的方法。我们还提供了示例代码来演示如何实现这些任务。现在,你可以在C#中使用SMTP来发送和监视电子邮件。