C# 使用 System.Net 发送 HTML 邮件示例

1 下载量 175 浏览量 更新于2024-08-29 收藏 43KB PDF 举报
“C#利用System.Net发送HTML格式邮件” 在C#编程中,发送HTML格式的电子邮件是一项常见的任务,这通常涉及到使用`System.Net`命名空间中的`MailMessage`和`SmtpClient`类。以下是如何使用这些类来构建和发送包含HTML内容的邮件。 首先,你需要导入必要的命名空间: ```csharp using System; using System.Text; using System.Net; using System.Net.Mail; using System.Net.Mime; ``` 然后,你可以创建一个专门用于发送邮件的类,例如`SendEmail`: ```csharp public class SendEmail { private MailMessage mailMessage = new MailMessage(); // 创建MailMessage实例 // ... } ``` 在这个类中,你可以定义构造函数来初始化邮件的相关信息,比如收件人、发件人、主题和正文。这里有两个构造函数,一个接受单个收件人地址,另一个接受多个收件人地址: ```csharp public SendEmail(string toAddresses, string fromAddress, string title, string body) { // ... } public SendEmail(string toAddress, string fromAddress, string toName, string fromName, string title, string body, bool isBodyHtml) { // ... } ``` 在构造函数中,可以设置`MailMessage`对象的属性,如`From`、`To`、`Subject`和`Body`。对于HTML正文,需要设置`IsBodyHtml`属性为`true`: ```csharp mailMessage.From = new MailAddress(fromAddress, fromName); mailMessage.To.Add(new MailAddress(toAddress, toName)); mailMessage.Subject = title; mailMessage.Body = body; mailMessage.IsBodyHtml = isBodyHtml; ``` 此外,如果邮件需要包含附件或者使用特定的字符编码,可以添加以下代码: ```csharp // 添加附件 if (attachmentFilePath != null) { Attachment attachment = new Attachment(attachmentFilePath); mailMessage.Attachments.Add(attachment); } // 设置字符编码 mailMessage.HeadersEncoding = Encoding.UTF8; mailMessage.BodyEncoding = Encoding.UTF8; ``` 接下来,为了发送邮件,需要配置SMTP服务器的相关信息,并使用`SmtpClient`类: ```csharp SmtpClient smtpClient = new SmtpClient(smtpServer, smtpPort); smtpClient.UseDefaultCredentials = useDefaultCredentials; if (!useDefaultCredentials) { smtpClient.Credentials = new NetworkCredential(smtpUsername, smtpPassword); } smtpClient.EnableSsl = enableSsl; smtpClient.Send(mailMessage); ``` 至此,你已经具备了使用C#通过`System.Net`发送HTML格式邮件的基本知识。确保正确配置SMTP服务器信息,包括服务器地址(`smtpServer`)、端口号(`smtpPort`)、用户名(`smtpUsername`)和密码(`smtpPassword`),以及是否启用SSL(`enableSsl`)。如果使用默认凭据,则设置`UseDefaultCredentials`为`true`,否则提供网络凭证。