`
yuanmengchong
  • 浏览: 6141 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

jmail+freeMark发送邮件

 
阅读更多
背景:   

前几天有个pm搭建了个邮件服务,让我把发送邮件整合到系统里面。以前用过jmail发送过。由于这次是做的产品,所以对ui要求很高。所以要求邮件发送html。从java里面拼接实在是混乱,也不易修改。所以想到了利用模板来搞定

jar :jmail 1.4+ struts2+freemaker

java:

    <!-- public String forgetPwd() {
HttpServletRequest request = ServletActionContext.getRequest();
String email = request.getParameter("email");
Map<String, String> map = new HashMap<String, String>();
try {
                        //templates  里面需要的传人的值
Map<String, String> sendMap = new HashMap<String, String>();
                        //加载templates 正式环境可以采用预加载方式
String path = "E:\\myEclipse8.6\\fileboxServer\\defaultroot\\WEB-INF\\templates";
sendMap.put("now", DataUtils.date2String(DataUtils.getNow()));
sendMap.put("email", email);
sendMap.put("href",
"http://localhost:8080/html/account/reset_password.html?email="
+ email);
Jmail.sendMail(email, "找回密码", path, "finfPwd.ftl", sendMap);
} catch (Exception e) {
this.error = err(map);
e.printStackTrace();
return error;
}
this.result = success(map);
return SUCCESS;
}  -->
   jmail :

    <!--
/**
* 使用Freemarker生成html格式内容.
*/
public static String generateContent(Map<String, String> map, String path,
String ftl) throws MessagingException {
try {
try {
Configuration freemarkerConfiguration = new Configuration();
// 可以再初始化selvelt时加载
File f = new File(path);
freemarkerConfiguration.setDirectoryForTemplateLoading(f);
Template template = freemarkerConfiguration.getTemplate(ftl,
"utf-8");
return FreeMarkerTemplateUtils.processTemplateIntoString(
template, map);
} catch (IOException e) {
throw new MessagingException("FreeMarker模板不存在", e);
}
} catch (TemplateException e) {
throw new MessagingException("FreeMarker处理失败", e);
}

}

public static void main(String args[]) {
try {
String email="test@163.com";
Map<String, String> sendMap = new HashMap<String, String>();
String path = "E:\\myEclipse8.6\\fileboxServer\\defaultroot\\WEB-INF\\templates";
sendMap.put("now", DataUtils.date2String(DataUtils.getNow()));
sendMap.put("email", email);
sendMap.put("href",
"http://localhost:8080/html/account/reset_password.html?email="
+ email);
Jmail.sendMail(email, "找回密码", path, "finfPwd.ftl", sendMap);
} catch (MessagingException e) {
e.printStackTrace();
}
}

/**
* @param email
*            发送到的email
* @param subject
*            主题
* @param path
*            模板所在的路径
* @param path
*            加载的模板
* @param path
*            模板要加载的参数
* @throws MessagingException
*/
@SuppressWarnings("static-access")
public static void sendMail(String email, String subject, String path,
String template, Map<String, String> map) throws MessagingException {

// 第一步:配置javax.mail.Session对象
System.out.println("为smtp.filebox.com.cn 配置mail session对象");

Properties props = new Properties();
props.put("mail.smtp.host", EMAIL_PORT);
props.put("mail.smtp.starttls.enable", "true");// 使用 STARTTLS安全连接
// props.put("mail.smtp.port", "25"); //google使用465或587端口
props.put("mail.smtp.auth", "true"); // 使用验证
// props.put("mail.debug", "true");
Session mailSession = Session.getInstance(props,new MyAuthenticator(EMAIL_USRTID,EMAIL_PWD) );
// Session mailSession = Session.getInstance(props);

// 第二步:编写消息

InternetAddress fromAddress = new InternetAddress(EMAIL_FROM);
InternetAddress toAddress = new InternetAddress(email);

MimeMessage message = new MimeMessage(mailSession);

message.setFrom(fromAddress);
message.addRecipient(RecipientType.TO, toAddress);

message.setSentDate(Calendar.getInstance().getTime());
message.setSubject(subject);
message.setContent(Jmail.generateContent(map, path, template),
EMAIL_TYPE);
// 第三步:发送消息
Transport transport = mailSession.getTransport("smtp");
//transport.connect("service","service123");
transport.connect();
transport.send(message, message.getRecipients(RecipientType.TO));
System.out.println("message yes");
}
}

class MyAuthenticator extends Authenticator {
String userName = "";
String password = "";

public MyAuthenticator() {

}

public MyAuthenticator(String userName, String password) {
this.userName = userName;
this.password = password;
}

protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, password);
}

}
-->
  
分享到:
评论

相关推荐

    Jmail +excel 收发邮件

    用户JMAIL组件通过EXCEL发送邮件.

    jmail4.4-发送邮件

    `jmail4.4-发送邮件`这个标题和描述指向的是一个特定的版本,即Jmail 4.4,它提供了在ASP和ASP.NET环境中发送邮件的功能。在这里,我们将深入探讨Jmail 4.4的工作原理、使用方法以及如何通过实例来实现邮件发送。 *...

    VBA:借助jmail控件一键发送邮件

    这意味着,无论用户是否安装了Foxmail或其他客户端,只要网络连接可用,VBA脚本都能通过Jmail发送邮件。 提供的文件“Jmail发邮件--成功.xls”可能是包含VBA代码的示例Excel工作簿,其中包含了完整的邮件发送功能。...

    用ASP+Jmail发邮件的完整范例

    最后,调用`Mail.Send`方法发送邮件: ```vbscript Mail.Send ``` 如果一切设置正确,邮件将被发送出去。 在实际应用中,你需要根据你的环境替换上述代码中的示例值。例如,使用真实的邮件地址、SMTP服务器...

    jmail表单发送邮件

    下面将详细解释`JMail`表单发送邮件的相关知识点。 1. **JMail组件**: `JMail` 是一款强大的ASP邮件组件,由Intersoft公司开发,支持SMTP、POP3等多种协议,可以实现邮件的发送、接收和管理。通过使用JMail,...

    VC++、MFC使用Jmail组件自动发送邮件带附件(源代码)

    6、使用列表显示每次发送邮件的结果,如有问题便于定位和解决。 7、对于发送的结果,可保存为本地日志文件。 8、本程序无需手动注册jmail.dll文件,程序启动时自动注册,方便新手操作。 9、本程序保存输入项,以便...

    VB+JMAIL邮件发送样例

    在IT行业中,VB(Visual Basic)是一种常用的编程语言,尤其在开发Windows应用程序时。而邮件发送功能在很多应用中都十分常见,例如自动通知、...通过理解和应用这些知识,开发者可以创建出能够发送邮件的VB应用程序。

    asp.net 实现jmail 接收和发送邮件程序.zip

    使用JMail发送邮件主要涉及以下几个步骤: 1. 引入JMail组件:在项目中添加对JMail的引用,确保它在解决方案中可用。 2. 创建邮件对象:通过`new JMail()`初始化一个新的邮件实例,设置发件人、收件人、主题和邮件...

    jmail发送邮件

    标题 "jmail发送邮件" 涉及到的是在C#编程环境中利用JMail库来实现电子邮件的发送功能。JMail是一款广泛使用的.NET组件,它允许开发者通过SMTP(Simple Mail Transfer Protocol)服务来发送邮件,同时也支持POP3...

    用ASP的发送邮件 jmail邮件发送.docx

    在ASP中使用JMail,首先需要在服务器上安装JMail组件,然后通过脚本代码调用来配置和发送邮件。以下是使用JMail发送邮件的关键步骤: 1. **配置邮件服务器信息**: - `E_Server`:设置SMTP(Simple Mail Transfer ...

    asp+w3jmail邮件发送(成功发送附详细说明).rar.rar

    在ASP中使用W3JMail发送邮件的过程主要包括以下几个步骤: 1. **安装和引用W3JMail组件**: 首先,你需要在服务器上安装W3JMail组件。这通常涉及到将组件文件复制到服务器的特定目录,如`INETPUB\SCRIPTS`,然后在...

    visual c++ vc++利用JMail.dll发送电子邮件.vc发电子邮件

    例如,“vc利用JMail组件快速构建邮件程序_基于jmail.dll.txt”可能包含一个详细步骤的教程,指导开发者如何在VC++项目中集成JMail组件并编写发送邮件的代码。而“JMail 参考.txt”和“Jmail发送和接收邮件.txt”很...

    C#利用JMAIL开发自动发送邮件

    在C#中,使用JMail发送邮件的基本步骤如下: 1. 引入JMail库:在项目中添加引用到jmail.dll文件,确保项目可以访问到JMail的类和方法。 2. 创建JMail实例:`JMail jmail = new JMail();` 3. 配置邮件属性:设置发...

    使用Jmail组件发送和接收邮件(含附件)

    使用JMail发送邮件主要包括以下几个步骤: 1. **配置SMTP服务器**:JMail需要知道SMTP服务器的信息,包括服务器地址、端口号、用户名和密码。这些信息可以在程序中以Properties对象的形式设置。 2. **创建Session...

    Jmail实现邮件的发送

    JMail是一款用于在Java环境中发送电子邮件的开源库,它提供了简单易用的API,使得开发者无需注册即可直接发送邮件。这个工具特别适用于那些需要在应用程序中集成邮件功能的项目,如用户通知、批量邮件发送等场景。...

    如何利用asp+jmail发送系统邮件

    在实际项目中常常会碰到注册会员时,通过注册时的邮箱进行会员认证操作;...管理员也可以通过系统邮箱进行消息推送! 那么在实际的开发中如何发系统邮件昵?我这里采用的是:asp+jmail组件发送系统邮件!

    利用Jmail发送邮件:

    #### 发送邮件 在提供的代码片段中,主要涉及了如何使用Jmail库来实现邮件的发送功能。Jmail是一个强大的.NET类库,用于开发支持SMTP、POP3协议的应用程序。下面将详细介绍其中的一些关键技术点。 1. **初始化Jmail...

    asp.net中使用Jmail发送邮件

    Jmail是一个流行的组件,它为ASP.NET开发者提供了一种方便的方式来发送邮件。本文将深入探讨如何在ASP.NET中利用Jmail来实现邮件发送功能。 首先,Jmail是一个由DimiSoft公司开发的组件,它支持SMTP、POP3、IMAP等...

    jmail.rar发送邮件,决对正确

    标题中的“jmail.rar发送邮件,决对正确”指的是使用JMail这个Java库来实现电子邮件的发送功能。JMail是一款广泛应用于Java环境中的邮件发送组件,它允许开发者通过编程方式发送电子邮件,包括文本邮件、HTML邮件,...

    asp在线发送邮件(jmail组件+asp案例程序)

    在ASP中实现在线发送邮件的功能,通常会借助第三方组件,比如JMail。JMail是一款功能强大的SMTP/POP3电子邮件组件,它允许ASP应用程序通过SMTP服务器发送邮件,并且支持接收POP3邮件。 **JMail组件介绍** JMail是...

Global site tag (gtag.js) - Google Analytics