发送邮件工具类MailHelper
using System; using System.Net; using System.Net.Mail; using System.Text; using System.Threading; namespace 落地页测试代码 { public class MailHelper { /// <summary> /// 邮件服务器地址 /// </summary> public string MailServer { get; set; } /// <summary> /// 用户名 /// </summary> public string MailUserName { get; set; } /// <summary> /// 密码 /// </summary> public string MailPassword { get; set; } /// <summary> /// 名称 /// </summary> public string MailName { get; set; } /// <summary> /// 同步发送邮件 /// </summary> /// <param name="to">收件人邮箱地址</param> /// <param name="subject">主题</param> /// <param name="body">内容</param> /// <param name="encoding">编码</param> /// <param name="isBodyHtml">是否Html</param> /// <param name="enableSsl">是否SSL加密连接</param> /// <returns>是否成功</returns> public bool Send(string to, string subject, string body, string encoding = "UTF-8", bool isBodyHtml = true, bool enableSsl = false) { try { MailMessage message = new MailMessage(); // 接收人邮箱地址 message.To.Add(new MailAddress(to)); message.From = new MailAddress(MailUserName, MailName); message.BodyEncoding = Encoding.GetEncoding(encoding); message.Body = body; //GB2312 message.SubjectEncoding = Encoding.GetEncoding(encoding); message.Subject = subject; message.IsBodyHtml = isBodyHtml; SmtpClient smtpclient = new SmtpClient(MailServer, 25); smtpclient.Credentials = new System.Net.NetworkCredential(MailUserName, MailPassword); //SSL连接 smtpclient.EnableSsl = enableSsl; smtpclient.Send(message); return true; } catch (Exception) { throw; } } /// <summary> /// 异步发送邮件 独立线程 /// </summary> /// <param name="to">邮件接收人</param> /// <param name="title">邮件标题</param> /// <param name="body">邮件内容</param> /// <param name="port">端口号</param> /// <returns></returns> public void SendByThread(string to, string title, string body, int port = 25) { new Thread(new ThreadStart(delegate() { try { SmtpClient smtp = new SmtpClient(); //邮箱的smtp地址 smtp.Host = MailServer; //端口号 smtp.Port = port; //构建发件人的身份凭据类 smtp.Credentials = new NetworkCredential(MailUserName, MailPassword); //构建消息类 MailMessage objMailMessage = new MailMessage(); //设置优先级 objMailMessage.Priority = MailPriority.High; //消息发送人 objMailMessage.From = new MailAddress(MailUserName, MailName, System.Text.Encoding.UTF8); //收件人 objMailMessage.To.Add(to); //标题 objMailMessage.Subject = title.Trim(); //标题字符编码 objMailMessage.SubjectEncoding = System.Text.Encoding.UTF8; //正文 objMailMessage.Body = body.Trim(); objMailMessage.IsBodyHtml = true; //内容字符编码 objMailMessage.BodyEncoding = System.Text.Encoding.UTF8; //发送 smtp.Send(objMailMessage); } catch (Exception) { throw; } })).Start(); } } }
人生的成功不在于拿到一副好牌,而是怎样将坏牌打好。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统