C#发邮件_EmailHelper
EmailHelper类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | public class EmailHelper { /// <summary> /// 发送邮件 /// </summary> /// <param name="smtpServer">smtp服务器</param> /// <param name="port">端口</param> /// <param name="mailFrom">发件人邮箱</param> /// <param name="userPassword">密码</param> /// <param name="mailTo">收件人</param> /// <param name="strcc">抄送人</param> /// <param name="strBcc">密送</param> /// <param name="mailSubject">邮件主题</param> /// <param name="mailContent">内容</param> /// <param name="strs">附件</param> /// <returns>发送成功返回true否则false</returns> public static bool SendEmail( string smtpServer, int port, string mailFrom, string userPassword, string mailTo, string strcc, string strBcc, string mailSubject, string mailContent, string strs) { try { // 设置发送方的邮件信息 // 邮件服务设置 SmtpClient smtpClient = new SmtpClient(); smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; //指定电子邮件发送方式 smtpClient.Host = smtpServer; //指定SMTP服务器 smtpClient.Port = port; //端口 smtpClient.Credentials = new System.Net.NetworkCredential(mailFrom, userPassword); //验证用户名和密码 smtpClient.EnableSsl = true ; //使用SSL // 发送邮件设置 MailMessage mailMessage = new MailMessage(mailFrom, mailTo); // 发送人和收件人 mailMessage.Subject = mailSubject; //主题 mailMessage.Body = mailContent; //内容 mailMessage.BodyEncoding = Encoding.UTF8; //正文编码 mailMessage.IsBodyHtml = true ; //设置为HTML格式 mailMessage.Priority = MailPriority.Normal; //优先级 //抄送人 if (! string .IsNullOrEmpty(strcc)) mailMessage.CC.Add(strcc); //密送 if (! string .IsNullOrEmpty(strBcc)) mailMessage.Bcc.Add(strBcc); //附件 if (! string .IsNullOrEmpty(strs)) { List< string > paths = new List< string >(); if (strs.Contains( "," )) { paths = strs.Split( ',' ).ToList(); } else { paths.Add(strs); } foreach ( var path in paths) { mailMessage.Attachments.Add( new Attachment(strs)); } } smtpClient.Send(mailMessage); // 发送邮件 return true ; } catch { return false ; } } } |
调用发送邮件的方法:
static void Main(string[] args) { //获得各种参数,不需要的用空字符串 string path = Directory.GetCurrentDirectory(); string file = path + @"\Excel.xlsx"; //附件1 string file2 = path + @"\Excel2.xlsx";//附件2 string smtpServer = "smtp.163.com";//163邮箱的smtp服务器 int port = 25;//端口 string mailFrom = "******@163.com";//发件人邮箱 string pwd = "*********";//密码 string mailTo = "123@163.com,456@qq.com";//收件人邮箱,多个用户用逗号隔开 string mailCC = "";//抄送人,多个用户用逗号隔开 string mailBcc = "";//密送 string mailSubject = "测试邮件";//主题 string mailContent = "HI,这是我发给你的一个测试邮件";//内容 string ah = file+","+file2; //附件-文件路径 if (EmailHelper.SendEmail(smtpServer, port, mailFrom, pwd, mailTo, mailCC, mailBcc, mailSubject, mailContent, ah) == true) { Console.WriteLine("发送成功!"); } else Console.WriteLine("发送失败"); Console.ReadKey(); }
注意:
- 确认发件人的邮箱已开通smtp;
- 对应邮箱的smtp填写正确,例:126邮箱:smtp@126.com
- 对应的邮箱SendEmail 中是否要使用SSL加密连接
分类:
C#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?