【.net/.net core】发送邮件方法

编程入门 行业动态 更新时间:2024-10-24 21:30:37

【.net/.net core】<a href=https://www.elefans.com/category/jswz/34/1770428.html style=发送邮件方法"/>

【.net/.net core】发送邮件方法

具体实现逻辑为申请一个授权的发送邮箱,利用该邮箱从代码层面实现邮箱中的邮件发送功能 

 #region 发送邮件/// <summary>/// 发送邮件方法/// </summary>/// <param name="Subject">邮件标题</param>/// <param name="Body">邮件内容</param>/// <param name="FromMail">发件人邮箱</param>/// <param name="ToMail">收件人邮箱(多个收件人地址用";"号隔开)</param>/// <param name="AuthorizationCode">发件人授权码(需要通过在邮箱设置中获取)</param>/// <param name="ReplyTo">对方回复邮件时默认的接收地址(不设置也是可以的)</param>/// <param name="CCMail">//邮件的抄送者(多个抄送人用";"号隔开)(不设置也是可以的)</param>/// <param name="File_Path">附件的地址(不设置也是可以的)</param>public static void SendMail(string Subject, string Body, string FromMail, string ToMail, string AuthorizationCode, string ReplyTo, string CCMail, string File_Path){try{//实例化一个发送邮件类。System.Net.Mail.MailMessage mailMessage = new System.Net.Mail.MailMessage();mailMessage.IsBodyHtml = true;mailMessage.BodyEncoding = System.Text.Encoding.UTF8;//邮件的优先级,分为 Low, Normal, High,通常用 Normal即可mailMessage.Priority = MailPriority.Normal;//发件人邮箱地址。mailMessage.From = new MailAddress(FromMail);//收件人邮箱地址。需要群发就写多个//拆分邮箱地址List<string> ToMaillist = ToMail.Split(';').ToList();for (int i = 0; i < ToMaillist.Count; i++){mailMessage.To.Add(new MailAddress(ToMaillist[i]));  //收件人邮箱地址。}if (ReplyTo == "" || ReplyTo == null){ReplyTo = FromMail;}//对方回复邮件时默认的接收地址(不设置也是可以的哟)mailMessage.ReplyTo = new MailAddress(ReplyTo);if (CCMail != "" && CCMail != null){List<string> CCMaillist = ToMail.Split(';').ToList();for (int i = 0; i < CCMaillist.Count; i++){//邮件的抄送者,支持群发mailMessage.CC.Add(new MailAddress(CCMail));}}//如果你的邮件标题包含中文,这里一定要指定,否则对方收到的极有可能是乱码。mailMessage.SubjectEncoding = Encoding.UTF8;//邮件正文是否是HTML格式mailMessage.IsBodyHtml = false;//邮件标题。mailMessage.Subject = Subject;//邮件内容。mailMessage.Body = Body;//设置邮件的附件,将在客户端选择的附件先上传到服务器保存一个,然后加入到mail中  if (File_Path != "" && File_Path != null){//将附件添加到邮件mailMessage.Attachments.Add(new Attachment(File_Path));//获取或设置此电子邮件的发送通知。mailMessage.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;}//实例化一个SmtpClient类。SmtpClient client = new SmtpClient();#region 设置邮件服务器地址//在这里我使用的是163邮箱,所以是smtp.163,如果你使用的是qq邮箱,那么就是smtp.qq。// client.Host = "smtp.163";if (FromMail.Length != 0){//根据发件人的邮件地址判断发件服务器地址   默认端口一般是25string[] addressor = FromMail.Trim().Split(new Char[] { '@', '.' });switch (addressor[1]){case "163":client.Host = "smtp.163";break;case "126":client.Host = "smtp.126";break;case "qq":client.Host = "smtp.qq";break;case "gmail":client.Host = "smtp.gmail";break;case "hotmail":client.Host = "smtp.live";//outlook邮箱//client.Port = 587;break;case "foxmail":client.Host = "smtp.foxmail";break;case "sina":client.Host = "smtp.sina";break;default:client.Host = "smtp.exmail.qq";//qq企业邮箱break;}}#endregion//使用安全加密连接。client.EnableSsl = true;//不和请求一块发送。client.UseDefaultCredentials = false;//验证发件人身份(发件人的邮箱,邮箱里的生成授权码);client.Credentials = new NetworkCredential(FromMail, AuthorizationCode);//如果发送失败,SMTP 服务器将发送 失败邮件告诉我  mailMessage.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;//发送client.Send(mailMessage);Console.WriteLine("发送成功");}catch (Exception ex){Console.WriteLine("发送失败" + ex.Message);}}#endregion

更多推荐

【.net/.net core】发送邮件方法

本文发布于:2023-12-03 12:31:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1655372.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:发送邮件   方法   net   core

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!