java调用html模板发送html内容的邮件
在项目需要发送邮件,普通内容的邮件觉得太单调、太丑,没逼格,所以说直接把用到的邮件内容做成一个html模板,发送之前将对应参数替换掉,发送html内容的高逼格邮件。
首先需要引用jar包,这就不多说了,直接贴代码:
1.发送邮件处理
1 String host = ""; 2 String mailFrom = ""; 3 String mailPass = ""; 4 Properties props=new Properties(); 5 props.put("mail.smtp.host",host); 6 props.put("mail.smtp.auth", "true"); 7 Session s=Session.getInstance(props); 8 MimeMessage message=new MimeMessage(s); 9 10 // 给消息对象设置发件人/收件人/主题/发信时间 11 try{ 12 InternetAddress from=new InternetAddress(mailFrom); 13 message.setFrom(from); 14 InternetAddress to=new InternetAddress(mailto); 15 message.setRecipient(Message.RecipientType.TO,to); 16 message.setSubject(title); 17 message.setSentDate(new Date()); 18 19 //给消息对象设置内容 20 BodyPart mdp=new MimeBodyPart();//新建一个存放信件内容的BodyPart对象 21 mdp.setContent(htmlContent,"text/html;charset=UTF-8");//给BodyPart对象设置内容和格式/编码方式 22 Multipart mm=new MimeMultipart();//新建一个MimeMultipart对象用来存放BodyPart对象(事实上可以存放多个) 23 mm.addBodyPart(mdp);//将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart) 24 message.setContent(mm);//把mm作为消息对象的内容 25 message.saveChanges(); 26 Transport transport=s.getTransport("smtp"); 27 transport.connect(host,mailFrom,mailPass); 28 transport.sendMessage(message,message.getAllRecipients()); 29 transport.close(); 30 return true; 31 } 32 catch (Exception e) { 33 e.printStackTrace(); 34 return false; 35 }
调用的时候传三个参数,邮件接收人 mailto ,邮件主题 title,邮件的html内容 htmlContent
2.获取html模板文件路径
3.读取html模板文件的内容
4.对模板中的参数进行替换
作者:weihanli
出处:https://www.cnblogs.com/weihanli/p/sendHtmlMail.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?