OFBiz的邮件发送实现,仅用javax.mail.*包非spring,适合所有情况

发送 email 可以用 spring jar 包来发送,如果要在 ofbiz 中引用的话就等于又多了一个框架,所以不用它,只用 javax.mail.*; freemarker 模板jar包。如果不发html格式,那么代码将只依赖javax的mail包适合所有情况

 核心代码

Properties _props  = System.getProperties();

_props.put("mail.smtp.host", "localhost");//放置邮件服务器地址 

     Session session = Session.getDefaultInstance(_props, null);    

     MimeMessage message = new MimeMessage(session);//多用途网际邮件扩充协议的邮件信息对象

 

     message.setFrom(new InternetAddress(sender));//发送者信息

               InternetAddress[] ia = new InternetAddress[1];

               ia[1] = "test@test.com";

     message.addRecipients(Message.RecipientType.TO, ia);//接收者地址

               InternetAddress[] ia1 = new InternetAddress[1];

               ia1[1] = "bbc@bbc.com";

     message.addRecipients(Message.RecipientType.BCC, ia1);//密文抄送地址

     message.setSubject("hello");//主题

          Multipart multipart = new MimeMultipart();//邮件内容复合主体

          MimeBodyPart messageBodyPart = new MimeBodyPart();//邮件内容单体

     messageBodyPart.setContent(body,"text/plain");//邮件内容,是文本的,还是text/html页面格式的

          multipart.addBodyPart(messageBodyPart);//单体内容加入到复合主体中

     message.setContent(multipart);//邮件加入内容信息

     Transport.send(message);//发送邮件
 

 

 

 

其中邮件内容body为已经和 freemarker 模板结合过的字符串内容:

结合代码

 

 

Public static String getBody(Map<String, String> map, String tmpName) {

StringWriter result = new StringWriter();//输出流

 

        String path = UtilProperties.getConfigureMessage("email.template.path");//freemarker模板地址

        if (tmpName == null) {

            path +="test";//默认模板

        } else {

            path += tmpName;

        }

        try {

            Template template = FreeMarkerWorker.getTemplate(path);//取模板

            template.process(map, result);//将所给的map中K,Value值与模板中的值相匹配,将结果放入输出流

            //注意,map中的键值对一定要和模板中的值相匹配

        } catch (TemplateException e1) {

            Debug.logError(e1.getMessage().toString(), module);

        } catch (IOException e1) {

            Debug.logError(e1.getMessage().toString(), module);

        }

        String body = result.toString();

        return body;

}
 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值