利用.net代码实现发送邮件

发布时间:2026-09-28 18:18:52 浏览次数:2

利用.NET代码实现发送邮件的完整攻略如下:

1. 配置SMTP

使用.NET发送邮件需要配置SMTP(Simple Mail Transfer Protocol)服务器。SMTP服务器是邮件服务器中负责发邮件的,可以是自己部署在本机或者使用第三方的SMTP服务商提供的服务。在本机搭建SMTP服务器需要专业的知识,因此我们在这里选择使用第三方提供的SMTP服务商进行配置。常用的SMTP服务商有Gmail、QQ等。

以Gamil为例,在Gmail中,我们需要开启SMTP服务。方法是:

  • 登录Gmail账户,进入“[设置]”界面。
  • 点击“[转发和POP/IMAP]”选项卡,找到“[IMAP访问]”一栏。
  • 在“[IMAP访问]”一栏中找到“[启用IMAP]”选项,选择“[启用IMAP]”。
  • 在“[设置]”中点击“[账户和导入]”一栏,找到“[安全性和登录]”一栏。
  • 在“[安全性和登录]”一栏中找到“[应用密码]”选项。
  • 点击“[应用密码]”选项,在弹出的窗口中选择应用程序为“[其他(自定义名称)]”,后面的名称填写为你的应用程序名称,然后点击“[生成]”按钮,系统会生成一个16位的密码。
  • 记住这个密码,这是你的SMTP登录密码。

2. 引用命名空间

在.NET应用程序中发送邮件需要使用System.Net.Mail命名空间,因此在代码中要首先引用该命名空间。

using System.Net.Mail;

3. 创建MailMessage对象

发送邮件需要构建一个MailMessage对象,这个对象包含邮件的一些基本信息,如发件人地址、收件人地址、主题、内容等。

MailMessage mailMessage = new MailMessage();mailMessage.From = new MailAddress("sender@gmail.com");  // 发件人地址mailMessage.To.Add("recipient@qq.com");   // 收件人地址mailMessage.Subject = "邮件主题";  // 邮件主题mailMessage.Body = "邮件内容";   // 邮件内容

4. 配置SMTP客户端

接下来我们要配置SMTP客户端,这个过程需要设置SMTP服务商提供的登录地址、端口号以及登录名和密码。

SmtpClient smtpClient = new SmtpClient();smtpClient.Host = "smtp.gmail.com";  // SMTP服务器地址smtpClient.Port = 587;   // SMTP端口号smtpClient.EnableSsl = true;  // 启用SSL加密smtpClient.Credentials = new System.Net.NetworkCredential("sender@gmail.com", "password");   // 发件人登录名和密码

5. 发送邮件

最后一步,我们通过Send方法来发送邮件,如果一切顺利,代码会返回一个空值,否则会抛出异常。

smtpClient.Send(mailMessage);

示例1

下面给出一个完整的邮件发送示例,该代码可以发送一个包含附件的邮件。

using System.Net.Mail;MailMessage mailMessage = new MailMessage(new MailAddress("sender@gmail.com"), new MailAddress("recipient@qq.com"));  // 发送邮件mailMessage.Subject = "测试邮件";  // 邮件主题mailMessage.Body = "这是一封测试邮件";  // 邮件正文mailMessage.Attachments.Add(new Attachment(@"D:\test.txt"));  // 添加附件SmtpClient smtpClient = new SmtpClient();smtpClient.Host = "smtp.gmail.com";  // SMTP服务器地址smtpClient.Port = 587;   // SMTP端口号smtpClient.EnableSsl = true;  // 启用SSL加密smtpClient.Credentials = new System.Net.NetworkCredential("sender@gmail.com", "password");   // 发件人登录名和密码smtpClient.Send(mailMessage);  // 发送邮件

示例2

下面给出一个完整的邮件发送示例,该代码可以发送一个HTML格式的邮件。

using System.Net.Mail;using System.Text;MailMessage mailMessage = new MailMessage(new MailAddress("sender@gmail.com"), new MailAddress("recipient@qq.com"));  // 发送邮件mailMessage.Subject = "HTML邮件";  // 邮件主题mailMessage.BodyEncoding = Encoding.UTF8;  // 邮件内容使用UTF-8编码mailMessage.Headers.Add("X-Mailer", "Microsoft Outlook Express 6.00.2900.2869");mailMessage.IsBodyHtml = true;  // 邮件内容采用HTML格式string htmlBody = @"<html><body><h1>这是一封HTML邮件</h1></body></html>";mailMessage.Body = htmlBody;  // 邮件正文SmtpClient smtpClient = new SmtpClient();smtpClient.Host = "smtp.gmail.com";  // SMTP服务器地址smtpClient.Port = 587;   // SMTP端口号smtpClient.EnableSsl = true;  // 启用SSL加密smtpClient.Credentials = new System.Net.NetworkCredential("sender@gmail.com", "password");   // 发件人登录名和密码smtpClient.Send(mailMessage);  // 发送邮件
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477