c# 实现发送邮件的功能

所属分类: 软件编程 / C#教程 阅读数: 167
收藏 0 赞 0 分享

微软已经为我们准备好了现成的工具类供我们调用:

MailMessage //邮件信息类
SmtpClient //邮件发送类

首先需要在项目的类文件中引用以下命名空间:

using System.Net;
using System.Net.Mail;

然后直接上封装好的代码:

/// <summary>
/// 发送邮件方法
/// </summary>
/// <param name="mailTo">接收人邮件</param>
/// <param name="mailTitle">发送邮件标题</param>
/// <param name="mailContent">发送邮件内容</param>
/// <returns></returns>
public static bool SendEmail(string mailTo, string mailTitle, string mailContent)
{
  //设置发送方邮件信息,例如:qq邮箱
  string stmpServer = @"smtp.qq.com";//smtp服务器地址
  string mailAccount = @"123456789@qq.com";//邮箱账号
  string pwd = @"xcryxiqzzasaebbe";//邮箱密码(qq邮箱此处使用授权码,其他邮箱见邮箱规定使用的是邮箱密码还是授权码)

  //邮件服务设置
  SmtpClient smtpClient = new SmtpClient();
  smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
  smtpClient.Host = stmpServer;//指定发送方SMTP服务器
  smtpClient.EnableSsl = true;//使用安全加密连接
  smtpClient.UseDefaultCredentials = true;//不和请求一起发送
  smtpClient.Credentials = new NetworkCredential(mailAccount, pwd);//设置发送账号密码

  MailMessage mailMessage = new MailMessage(mailAccount, mailTo);//实例化邮件信息实体并设置发送方和接收方
  mailMessage.Subject = mailTitle;//设置发送邮件得标题
  mailMessage.Body = mailContent;//设置发送邮件内容
  mailMessage.BodyEncoding = Encoding.UTF8;//设置发送邮件得编码
  mailMessage.IsBodyHtml = false;//设置标题是否为HTML格式
  mailMessage.Priority = MailPriority.Normal;//设置邮件发送优先级

  try
  {
    smtpClient.Send(mailMessage);//发送邮件
    return true;
  }
  catch (SmtpException ex)
  {
    throw ex;
  }
}

常见问题及错误汇总:

1.邮箱授权码怎么获取,以qq邮箱为例:

2.抛出错误:System.Net.Mail.SmtpException:“命令顺序不正确。 服务器响应为:Error: need EHLO and AUTH first !”

​解决方案:确认邮箱是使用密码直接登录,还是授权码;

3.抛出错误:mail from address must be same as authorization user

​一般是邮箱账户设置中的 POP3/IMAP/SMTP 未开启

以qq邮箱为例:同样在账户设置中找到下图,开启红框中的选项即可。

以上就是c# 实现发送邮件的功能的详细内容,更多关于c# 发送邮件的资料请关注脚本之家其它相关文章!

更多精彩内容其他人还在看

C# 大小写转换(金额)实例代码

C# 大小写转换(金额)实例代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

C# WinForm中Panel实现用鼠标操作滚动条的实例方法

由于在WinForm中Panel不能直接响应鼠标的滚动事件,只好采用捕获窗体的滚动事件。
收藏 0 赞 0 分享

C#访问应用程序配置文件的方法

C#访问应用程序配置文件的方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#读写文件的方法汇总

C#读写文件的方法汇总,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#计算代码执行时间的方法

在一些测试工作时我们需要获得高精度的代码执行时间以比较其效率。
收藏 0 赞 0 分享

C# 动画窗体(AnimateWindow)的小例子

C# 动画窗体(AnimateWindow)的小例子,需要的朋友可以参考一下
收藏 0 赞 0 分享

C# zxing二维码写入的实例代码

C# zxing二维码写入的实例代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

c#判断输入的是不是数字的小例子

c#判断输入的是不是数字的小例子,需要的朋友可以参考一下
收藏 0 赞 0 分享

c# 深拷贝与浅拷贝的区别分析及实例

浅拷贝(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用. 深拷贝(深度克隆):不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的.
收藏 0 赞 0 分享

C#利用com操作excel释放进程的解决方法

最近利用Microsoft.Office.Interop.Excel.Application读取一个excel后,进程中一直存在excel,在网上找了一阵子,其中有几个解决方案
收藏 0 赞 0 分享
查看更多