快捷搜索:  test  as

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 map, String tmpName) {

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

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

if (tmpName == null) {

path += UtilProperties.getConfigureMessage("email.template.user.add");//默认模板

} 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;

}

您可能还会对下面的文章感兴趣: