使用正则表达式处理邮件模板中的参数

本文详细介绍了在软件开发过程中使用JavaMail给用户发送邮件并应用自定义模板的方法,包括如何通过Map对象传递参数值至邮件内容中,提供了一个实用的测试用例,旨在帮助开发者简化邮件发送流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  软件开发过程中,经常使用JavaMail给用户发送邮件;大多说情况下使用的是自定义的模板;定义模板的时候,经常使用这样的形式:${parameter}预留信息,然后使用以parameter为key的map,在map中存放的是具体应该放在${parameter}位置的信息,让后生产发给用户的邮件内容; 下面是鄙人在开发过程中使用的测试用例,记录下来以备后用,也希望能够帮助开发过程中遇到发送邮件,使用模板的童鞋少走点弯路,贴在下面,以飨童鞋;
  public class TestEmail { public static void main(String[] args) { // 邮件模板 StringBuffer htmlText = new StringBuffer( "感谢您注册万维网的账户,ID是${id},昵称是${usrName},你的密码是${ password },这封邮件是系统自动发出的,不需要回复,如果有疑问,wang_walden@163.com谢谢;"); // 带有参数值的Map Map parameterMap = new HashMap(); parameterMap.put("id", "357568"); parameterMap.put("usrName", "walden.wang"); parameterMap.put("password", "12345678"); StringBuffer result = producesEmail(htmlText, parameterMap); System.out.println(result); } /** * 取出htmlText文本中${parameter}的parameter作为key将parameterMap中对应的value * 放在HTML模板中,返回邮件内容 * * @param htmlText * 邮件模板 * @param parameterMap * 参数映射表 * @return */ private static StringBuffer producesEmail(StringBuffer htmlText, Map parameterMap) { // parameter前后空格已经去掉,对应的map中key前后应该不应该有空格了 Pattern pt = Pattern.compile("\\$\\{\\s*([^\\}\\s]+)\\s*\\}"); Matcher mt = pt.matcher(htmlText); StringBuffer result = new StringBuffer(); while (mt.find()) mt.appendReplacement(result, parameterMap.get(mt.group(1))); mt.appendTail(result); return result; } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值