📜  smtp 检查电子邮件是否已发送 - C# (1)

📅  最后修改于: 2023-12-03 15:20:09.961000             🧑  作者: Mango

检查电子邮件是否已发送 - C# SMTP

在C#中,我们可以使用SMTP(简单邮件传输协议)来发送电子邮件。发送电子邮件后,我们可能需要检查电子邮件是否已成功发送。在本文中,我们将介绍如何检查电子邮件是否已通过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来发送和监视电子邮件。