C# 实现邮件发送全攻略:本地、SMTP、SSL

需积分: 0 3 下载量 134 浏览量 更新于2024-07-31 收藏 146KB DOC 举报
“C#发送email相关操作整理,涵盖了通过Localhost、普通SMTP和SSL的SMTP发送邮件的方法。” 在C#编程中,发送电子邮件是一项常见的任务,可以借助.NET Framework 2.0及更高版本中的“System.Net.Mail”命名空间实现。这里我们将详细探讨三种不同的方式来发送邮件。 1. 通过Localhost发送邮件: ```csharp public void SendMailLocalhost() { // 创建MailMessage对象 System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); // 添加收件人 msg.To.Add("a@a.com"); msg.To.Add("b@b.com"); // 可以添加多个收件人,注释部分展示了如何添加更多 // 添加抄送人 msg.CC.Add("c@c.com"); // 设置发件人信息 msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8); // 设置邮件主题和内容 msg.Subject = "这是测试邮件"; msg.SubjectEncoding = System.Text.Encoding.UTF8; msg.Body = "邮件内容"; msg.BodyEncoding = System.Text.Encoding.UTF8; // 其他设置,如邮件优先级 msg.IsBodyHTML = false; msg.Priority = MailPriority.High; // 创建SmtpClient对象,设置主机为Localhost SmtpClient client = new SmtpClient(); client.Host = "localhost"; // 使用异步发送邮件,或使用client.Send(msg)进行同步发送 client.SendAsync(msg, null); } ``` 这个示例展示了如何配置邮件内容,包括收件人、抄送人、发件人、主题、内容等,并通过本地SMTP服务器发送邮件。如果本地主机配置了SMTP服务,如IIS等,这个方法将有效。 2. 通过普通SMTP发送邮件: 发送邮件通常涉及SMTP服务器,例如使用Gmail的SMTP服务器。你需要提供SMTP服务器地址、端口、用户名和密码等信息。以下是一个使用Gmail SMTP服务器的示例: ```csharp SmtpClient client = new SmtpClient("smtp.gmail.com", 587); client.EnableSsl = true; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential("your-email@gmail.com", "your-password"); ``` 3. 通过SSL的SMTP发送邮件: SSL用于加密通信,确保邮件内容的安全。在上面的Gmail示例中,`client.EnableSsl = true;`已经启用了SSL。 总结,C#中发送电子邮件涉及的主要类有`MailMessage`(存储邮件信息)和`SmtpClient`(处理邮件发送)。你可以根据实际需求选择合适的SMTP服务器配置,并调整邮件的各种属性,如是否为HTML格式、优先级等。这些方法对于开发自动发送通知、报告或其他类型的电子邮件功能非常有用。