- 浏览: 140157 次
文章分类
- 全部博客 (149)
- Java (41)
- 设计模式 (23)
- php (2)
- C++ (2)
- Linux (6)
- C (1)
- JavaEE (27)
- javascript (2)
- uplodify (1)
- Mybatis (2)
- Maven (4)
- Lucene (3)
- commons (1)
- Spring (7)
- SQL (3)
- mahout (1)
- MySQL (2)
- extjs4.2.1 (2)
- ubuntu (1)
- hadoop (1)
- hibernate (1)
- Spring JPA (2)
- JPA 2.0 (1)
- express (1)
- redis (2)
- angularjs (1)
- git (1)
- Python (1)
- logging (2)
最新评论
-
xlaohe1:
controller返回的是一个POJO对象,然后用@Resp ...
Spring MVC 4.X ResponseBody 日期类型Json 处理 -
TRAMP_ZZY:
能帮到你,我也很高兴。
Spring MVC 4.X ResponseBody 日期类型Json 处理 -
jobzjc:
第一段有帮到我。如果是非对象,Object方式传递的时候,第一 ...
Spring MVC 4.X ResponseBody 日期类型Json 处理 -
TRAMP_ZZY:
dingran 写道为什么,我怎么就没找到System > ...
Ubuntu 12.04 设置 IBus 开机启动 -
dingran:
为什么,我怎么就没找到System >> Pref ...
Ubuntu 12.04 设置 IBus 开机启动
1. 普通的JavaMail 发送和接受邮件
2. Spring Mail 集成
public class TestMail { public static void main(String[] args) { Transport transport = null; Properties prop = new Properties(); prop.put("mail.smtp.host", "smtp.163.com"); prop.put("mail.smtp.auth", true); Authenticator auth = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("tramp0524@163.com", "tramp"); } }; Session session = Session.getDefaultInstance(prop, auth); Message msg = new MimeMessage(session); try { msg.setFrom(new InternetAddress("tramp0524@163.com")); msg.setRecipient(Message.RecipientType.TO, new InternetAddress("250823912@qq.com")); msg.setSubject("Test Mail"); msg.setSentDate(new Date()); msg.setText("how are you~"); transport = session.getTransport("smtp"); transport.send(msg); System.out.println("send success"); } catch (AddressException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } finally { try { transport.close(); } catch (Exception e) { e.printStackTrace(); } } } }
public class JavaMailSSL { public static void main(String argv[]) throws Exception { Properties props = new Properties(); Session session = Session.getDefaultInstance(props); URLName urln = new URLName("pop3", "pop.163.com", 110, null, "tramp0524@163.com", "tramp"); /*URLName urln = new URLName("pop3s", "pop.163.com", 995, null, "tramp0524@163.com", "tramp");*/ Store store = session.getStore(urln); Folder inbox = null; try { store.connect(); inbox = store.getFolder("INBOX"); inbox.open(Folder.READ_ONLY); FetchProfile profile = new FetchProfile(); profile.add(FetchProfile.Item.ENVELOPE); Message[] msgs = inbox.getMessages(); inbox.fetch(msgs, profile); System.out.println("收件箱的邮件数:" + msgs.length); for (int i = 0; i < msgs.length; i++) { String from = msgs[i].getFrom()[0].toString(); InternetAddress ia = new InternetAddress(from); System.out.println("-----------------------------"); System.out.println("发送者:" + ia.getPersonal() + "/" + ia.getAddress()); System.out.println("标题:" + msgs[i].getSubject()); System.out.println("大小:" + msgs[i].getSize()); System.out.println("时间:" + msgs[i].getSentDate()); } } finally { try { inbox.close(false); } catch (Exception e) { } try { store.close(); } catch (Exception e) { } } } protected static String decodeText(String text) throws UnsupportedEncodingException { if (text == null) return null; if (text.startsWith("=?GB") || text.startsWith("=?gb")) text = MimeUtility.decodeText(text); else text = new String(text.getBytes("ISO8859_1")); return text; } }
2. Spring Mail 集成
@Service public class MailService { @Autowired private JavaMailSender javaMailSender; @Autowired private FreeMarkerConfigurer freeMarkerConfigurer; @Autowired private TaskExecutor taskExecutor; public void sendSimpleMail() { SimpleMailMessage msg = new SimpleMailMessage(); msg.setFrom("tramp0524@163.com"); msg.setTo("250823912@qq.com"); msg.setReplyTo("tramp0524@163.com"); // 抄送 msg.setCc("tramp0524@163.com"); msg.setSubject("success login"); msg.setText("nice to meet you !!!"); this.javaMailSender.send(msg); } public void sendHtmlMail(String userName) throws MessagingException { MimeMessage msg = this.javaMailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, false, "utf-8"); helper.setFrom("tramp0524@163.com"); helper.setTo("250823912@qq.com"); helper.setSubject("注册成功"); String htmlText = "<html><head>" + "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">" + "</head><body>" + "恭喜,您在IBlog已经注册成功!您的用户ID为:" + "<font size='20' size='30'>" + userName + "</font>" + "</body></html>"; // true show it is a mail of html helper.setText(htmlText, true); this.javaMailSender.send(msg); } public void sendInlineMail() throws MessagingException { MimeMessage msg = this.javaMailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8"); helper.setFrom("tramp0524@163.com"); helper.setTo("250823912@qq.com"); helper.setSubject("注册成功"); String htmlText = "<html><head>" + "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">" + "</head><body>" + "欢迎访问IBlog论坛!</hr>" + "<div><img src=\"cid:img01\"></img></div>" + "</body></html>"; // true show it is a mail of html helper.setText(htmlText, true); ClassPathResource resource = new ClassPathResource("1382946922292.jpg"); helper.addInline("img01", resource); this.javaMailSender.send(msg); } public void sendAttachmentMail() throws MessagingException, IOException { MimeMessage msg = javaMailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8"); helper.setFrom("tramp0524@163.com"); helper.setTo("250823912@qq.com"); helper.setSubject("注册成功"); helper.setText("欢迎访问宝宝淘论坛!"); ClassPathResource file1 = new ClassPathResource("bbt.zip"); helper.addAttachment("file01.zip", file1.getFile()); ClassPathResource file2 = new ClassPathResource("file.doc"); helper.addAttachment("file02.doc", file2.getFile()); javaMailSender.send(msg); } // 发送双版本邮件 public void sendAlternativeMail() throws Exception { MimeMessagePreparator mmp = new MimeMessagePreparator() { public void prepare(MimeMessage msg) throws Exception { MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8"); helper.setFrom("tramp0524@163.com"); helper.setTo("250823912@qq.com"); helper.setSubject("注册成功"); MimeMultipart mmPart = new MimeMultipart("alternative"); msg.setContent(mmPart); BodyPart plainTextPart = new MimeBodyPart(); plainTextPart.setText("欢迎访问宝宝淘论坛!"); mmPart.addBodyPart(plainTextPart); BodyPart htmlPart = new MimeBodyPart(); String htmlText = "<html><head>" + "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">" + "</head><body><font size='20' size='30'>" + "欢迎访问宝宝淘论坛</font>" + "</body></html>"; htmlPart.setContent(htmlText, "text/html;charset=utf-8"); mmPart.addBodyPart(htmlPart); } }; javaMailSender.send(mmp); } public void sendTemplateMail(String userId) throws MessagingException { MimeMessage msg = javaMailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, false, "utf-8"); helper.setFrom("tramp0524@163.com"); helper.setTo("250823912@qq.com"); helper.setSubject("注册成功:基于模板"); String htmlText = getMailContent(userId); helper.setText(htmlText, true); javaMailSender.send(msg); } public String getMailContent(String userId) { String text = null; try { Template template = this.freeMarkerConfigurer.getConfiguration().getTemplate("registerUser.ftl"); Map<String, Object> map = new HashMap<String, Object>(); map.put("userId", userId); text = FreeMarkerTemplateUtils.processTemplateIntoString(template, map); } catch (Exception e) { e.printStackTrace(); } return text; } public void sendAsyncMail(final String userId) { taskExecutor.execute(new Runnable() { public void run() { try { sendTemplateMail(userId); System.out.println("邮件发送成功!"); } catch (Exception e) { System.out.println("邮件发送失败!,异常信息:" + e.getMessage()); } } }); } }
<!-- spirng javamail config --> <bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl" p:host="smtp.163.com" p:protocol="smtp" p:defaultEncoding="utf8" p:username="tramp0524@163.com" p:password="tramp"> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> </props> </property> </bean> <!-- freemarker --> <bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer" p:templateLoaderPath="classpath:template/"> <property name="freemarkerSettings"> <props> <prop key="template_update_delay">1800</prop> <prop key="default_encoding">UTF-8</prop> <prop key="locale">zh_CN</prop> </props> </property> </bean> <!-- 异步执行器 --> <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" p:corePoolSize="10" p:maxPoolSize="30" />
发表评论
-
ServletContainerInitializer 初始化器
2016-08-24 14:29 5105概述 为了实现不通过web ... -
Tomcat 7.X 配置https
2014-11-10 11:47 493http://tomcat.apache.org/t ... -
Spring Data JPA 实例
2014-06-30 01:08 1916[url][/url] 1. Sping Data JPA 创 ... -
Spring 4.0.3+Hibernate4.3.5+Maven 配置文件
2014-06-21 09:43 2297<?xml version="1.0&qu ... -
JavaEE Filter和Listener 分析
2014-02-18 14:18 7911. Filter 使程序可以改变 ... -
Servlet 3.0 文件上传新特性
2014-02-15 21:55 510Servlet 3.0 实现了文件上传的功能,通过注解的方式指 ... -
ServletContext 与ServletConfig剖析
2014-02-15 20:44 6441. ServletContext 是一个全局的储存信息的空间 ... -
Jdbc 数据库连接池简易实现和JdbcUtils
2014-01-20 16:42 705public class MyDataSource { ... -
Java反射将Jdbc查询结果封装为对象
2014-01-19 10:24 1280public class ORMTest { pu ... -
Spring JdbcTemplate CRUD 操作
2014-01-11 12:12 932/** * Project Name:cjxy ... -
JavaEE 下载文件中文乱码兼容多浏览器
2013-12-11 11:02 503public static String encodeF ... -
Spring 3.2.* MVC通过Ajax获取JSON数据报406错误
2013-09-12 12:13 632Spring 3.2.* MVC通过Ajax获取JSON数据报 ... -
Spring SqlQuery 使用
2013-09-11 17:52 689/** * Project Name:webblog ... -
JavaEE pager-taglib 分页插件(2)
2013-08-12 17:56 437/** * Project Name:TestPag ... -
JavaEE pager-taglib 分页插件(1)
2013-08-12 16:47 1129pg:pager 这个标签用来 ... -
Web 安全与 过滤器
2013-06-03 16:51 7641. Servlet 安全的四大要 ... -
JSP学习笔记二
2013-06-03 15:36 7721. JSP 标准动作获取 Jav ... -
JSP学习笔记一
2013-05-24 16:26 7861. JSP 最终还是会变成一个完整的Servlet 在W ... -
Servlet学习笔记(二)
2013-05-23 17:30 6991. Servlet 的初始化参数 配置: < ... -
Servlet学习笔记(一)
2013-05-18 12:10 7811. MIME 类型是服务器对浏览器请求做出的反应类型。( ...
相关推荐
SpringMail 是一个基于 Java 的库,它为使用 JavaMail API 发送电子邮件提供了便捷的抽象层。这个框架使得在 Spring 应用程序中集成邮件服务变得简单。本文将深入探讨 SpringMail 的核心概念、配置以及如何在实际...
要使用Spring Mail,你需要在项目中引入`spring-context-support`依赖,这个依赖包含了对邮件服务的支持。接着,你需要配置一个`JavaMailSender`实例,该实例是Spring Mail的核心接口,负责邮件的发送工作。配置通常...
Spring Mail 提供了一种优雅的方式来配置和使用JavaMail API,而无需直接处理复杂的JavaMail API细节。下面将详细阐述Spring Mail的核心概念、配置、使用方法以及常见应用场景。 一、核心概念 1. JavaMail API:...
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> ${mail.smtp.host}" /> ${mail.smtp.port}" /> ${mail.from}" /> ${mail.password}" /> <prop key="mail....
SpringMail是一个在Java应用中发送电子邮件的库,它利用了JavaMail API的简便性和灵活性。在本项目中,我们将深入探讨如何使用SpringMail发送带有附件的电子邮件。首先,我们需要了解几个核心概念: 1. **JavaMail ...
Spring Mail是一个Java库,它简化了通过JavaMail API发送电子邮件的过程。本教程将详细讲解如何利用Spring Mail通过Gmail的SSL(安全套接层)协议来发送邮件。 首先,我们需要在项目中引入Spring Mail的依赖。如果...
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <value>smtp.163.com</value> <prop key="mail.smtp.auth">true <prop key="mail.smtp.timeout">25000 ...
在`springmail2`这个示例项目中,可能包含了一个简单的Spring Boot应用,演示了如何使用Spring Mail发送邮件。这个示例可能包括一个`Main`类,启动Spring Boot应用,并调用`MailService`发送一封测试邮件。代码可能...
SpringMail的核心依赖是JavaMail API,这是一个广泛使用的Java邮件处理库。JavaMail提供了与各种邮件服务器交互的接口,如SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)。SpringMail则将...
Spring框架提供了集成JavaMail API的能力,使得发送邮件变得简单易行。本教程将围绕"Spring + Mail"的组合,结合Freemarker模板引擎,提供一个完整的发送邮件的Demo。 首先,我们需要在项目中添加相关的依赖。...
其中,Spring的JavaMail支持使得开发者能够轻松地实现邮件发送功能。在本篇文章中,我们将深入探讨如何利用Spring来实现JavaMail邮件发送,以及在实际应用中需要注意的关键点。 首先,我们需要理解JavaMail API的...
#### 二、Spring对JavaMail的支持 Spring框架通过提供一套简洁易用的API来简化JavaMail的使用。主要体现在以下几个方面: 1. **邮件发送支持**: - **SimpleMailMessage**: 用于发送纯文本邮件。 - **...
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <prop key="mail.smtp.auth">true <prop key="mail.smtp.starttls.enable">true ``` **发送邮件** ...
1. **mail.jar**:这是一个核心的 JavaMail JAR 文件,包含了 JavaMail API 的所有类和接口,如 `javax.mail` 和 `javax.mail.internet` 包。这些类提供了创建、发送、读取邮件以及处理附件等功能。例如,`Message` ...
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <prop key="mail.smtp.auth">true <prop key="mail.smtp.starttls.enable">true <prop key="mail....
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <prop key="mail.smtp.auth">true <prop key="mail.smtp.starttls.enable">true ``` 配置完成后,...
SpringMail 提供了一种方便的方式来配置和使用 JavaMail API,避免了直接与复杂的 JavaMail API 接触,降低了开发难度。 ### **一、SpringMail 的核心概念** 1. **JavaMail API**: SpringMail 基于 JavaMail API,...
Spring Mail支持发送HTML格式的邮件,这在创建有样式的邮件时非常有用。我们可以通过设置`MimeMessageHelper`的`isHtml`属性为`true`来指定邮件内容是HTML格式,然后使用`addAltBody`方法添加纯文本版本,以便不...