C# 实战:可靠发送电子邮件教程

需积分: 3 9 下载量 19 浏览量 更新于2024-12-02 收藏 1KB TXT 举报
"这篇文章主要介绍了如何使用C#编程语言发送电子邮件。提供的代码示例是一个经过验证的、简单实用的方法,适合初学者参考。" 在C#中发送电子邮件是一项常见的任务,通常用于自动化通知、报告或者客户服务。下面我们将详细讨论如何使用C#的`System.Web.Mail`命名空间来实现这一功能。 首先,我们需要导入`System.Web.Mail`命名空间,它包含了发送电子邮件所需的基本类。不过请注意,`System.Web.Mail`在较新的.NET框架版本中已经被弃用,推荐使用`System.Net.Mail`,但这里我们仍然基于提供的代码进行讨论。 ```csharp using System.Web.Mail; ``` 然后,创建一个`MailMessage`对象,这是邮件的核心,包含邮件的所有信息。例如,设置收件人、发件人、主题和邮件正文: ```csharp MailMessage mail = new MailMessage(); mail.To = "sunzf.sure@163.com"; // 收件人邮箱 mail.From = "sunzf@163.com"; // 发件人邮箱 mail.Subject = "thisisatestemail."; // 邮件主题 mail.Body = "Sometextgoeshere"; // 邮件正文 ``` 为了发送邮件,还需要配置SMTP服务器的信息。在这个例子中,使用的是163邮箱的SMTP服务器,所以需要设置SMTP服务器地址以及认证信息: ```csharp mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); // 基本认证 mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "sun@163.com"); // 用户名 mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "123456"); // 密码 SmtpMail.SmtpServer = "smtp.163.com"; // SMTP服务器地址 ``` 最后,调用`SmtpMail.Send(mail)`方法发送邮件: ```csharp SmtpMail.Send(mail); ``` 如果需要添加附件,可以使用`Attachment`类,并将其添加到`MailMessage`的`Attachments`集合中: ```csharp Attachment data = new Attachment(@"C:\DocumentsandSettings\wanglei\MyDocuments\MyPictures\SS.jpg", System.Net.Mime.MediaTypeNames.Application.Octet); mail.Attachments.Add(data); ``` 在实际应用中,应当处理可能出现的异常,确保邮件发送过程的健壮性: ```csharp try { client.Send(mail); Response.Write("OK"); } catch (Exception ex) { throw new Exception("SendEmailFailed:" + ex.ToString()); } ``` 总结,C#发送电子邮件涉及的主要知识点包括:`MailMessage`类的使用,设置邮件属性,配置SMTP服务器参数,使用`SmtpMail`类发送邮件,以及处理可能的异常情况。虽然这个例子使用了已过时的`System.Web.Mail`,但在理解基本原理后,可以轻松转换到现代的`System.Net.Mail`,如`MailMessage`和`SmtpClient`类。