使用C#发送电子邮件的完整代码示例

需积分: 11 13 下载量 184 浏览量 更新于2024-09-19 收藏 2KB TXT 举报
本文将详细介绍如何使用C#语言发送电子邮件,包括关键的代码示例和步骤解析。 在C#中,发送电子邮件主要依赖于`System.Net.Mail`命名空间中的`SmtpClient`和`MailMessage`类。下面的代码片段展示了如何通过C#实现这个功能: ```csharp using System; using System.Net; using System.Net.Mail; public static bool SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, string strTo, string strSubject, string strBody, string[] Attachments) { SmtpClient client = null; MailMessage message = null; try { // 创建SmtpClient实例,设置SMTP服务器地址 client = new SmtpClient(); client.Host = System.Net.Dns.GetHostAddresses(strSmtpServer)[0].ToString(); // 不使用默认凭据,设置发件人的用户名和密码 client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(strFrom, strFromPass); // 设置邮件发送方式为网络 client.DeliveryMethod = SmtpDeliveryMethod.Network; // 创建MailMessage实例,设置发件人、收件人、主题和正文 message = new MailMessage(strFrom, strTo); message.Subject = strSubject; message.Body = strBody; message.BodyEncoding = System.Text.Encoding.UTF8; message.IsBodyHtml = true; // 设置邮件正文是否为HTML格式 // 添加附件 if (Attachments != null) { foreach (string attachmentPath in Attachments) { if (System.IO.File.Exists(attachmentPath)) { Attachment attachment = new Attachment(attachmentPath); message.Attachments.Add(attachment); } } } // 发送邮件 client.Send(message); return true; } catch { // 处理异常情况 return false; } finally { // 清理资源,确保连接关闭 if (message != null) message.Dispose(); if (client != null) client.Dispose(); } } ``` 这段代码首先创建了一个`SmtpClient`对象,用于与SMTP服务器通信。然后,它设置了SMTP服务器的主机名,发件人的用户名和密码,以及邮件的发送方式。接着,创建`MailMessage`对象并设置了发件人、收件人、邮件主题和正文。如果需要,还可以添加附件。最后,`SmtpClient`的`Send`方法用于实际发送邮件。 在实际使用中,你需要提供SMTP服务器地址(如`strSmtpServer`)、发件人邮箱(`strFrom`)和密码(`strFromPass`)、收件人邮箱(`strTo`)、邮件主题(`strSubject`)和正文(`strBody`)。如果有附件,还需要提供附件的路径(`Attachments`数组)。 注意,确保SMTP服务器支持你所使用的认证方式,并正确配置了端口号、SSL/TLS等安全设置。此外,确保发件人的邮箱是有效的,并且密码正确,否则邮件将无法发送。在处理异常时,代码会返回一个布尔值,表示邮件发送是否成功。 C#发送邮件涉及到的主要知识点包括:`SmtpClient`类的使用、`MailMessage`类的构造和属性设置、`NetworkCredential`类用于身份验证、以及邮件附件的添加和发送流程。了解这些知识点后,你就能轻松地在C#程序中实现电子邮件的发送功能。