c# 实现发送邮件的功能

Kande ·
更新时间:2024-11-13
· 767 次阅读

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

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# Email邮件发送功能 找回或重置密码功能C#实现QQ邮箱发送邮件C#中利用Lotus notes公共邮箱发送邮件的方法C# Email发送邮件 对方打开邮件可获得提醒C#实现发送邮件的方法C# SendMail发送邮件功能实现C#使用windows服务发送邮件



发送邮件 C# 邮件

需要 登录 后方可回复, 如果你还没有账号请 注册新账号