- 浏览: 153199 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (130)
- Database (5)
- JavaSE (23)
- JavaScript (11)
- Struts2 (15)
- Hibernate (11)
- Spring (16)
- Linux (4)
- Jquery (3)
- Tools (12)
- Jsp (7)
- 杂谈 (9)
- WEB Project (10)
- WebService (16)
- maven (2)
- android (1)
- memcache (2)
- 网络通信 (4)
- solr (1)
- cxf (7)
- powerdesigner (1)
- jxls (1)
- springmvc (1)
- nosql (1)
- node.js (0)
- thrift (0)
- REST (1)
- tag (1)
最新评论
前言:项目中要做一个发送邮件的功能,在网上搜了一些代码,说的都不是很完善。自己就整理了一个可以运行的项目。需要注意的地方是:如果发送人的邮箱是qq邮箱,那么需要在 设置->账户里面把√打上。spring里面的
<property name="host">
<value>smtp.126.com</value>
</property>
要配置成smtp.qq.com
126邮箱同理。
步骤如下:
用spring做一个javaMail功能。
1、先建一个项目。java项目和web项目均可。
2、需要引入的jar包有:mail.jar,activation.jar(我用的是maven搭建的项目,在pom.xml中依赖了那两个jar包)
3、在MyEclipse的项目里面加入spring的jar包
4、在项目中的applicationContext-init.xml (名字可以任意改)文件中加入如下代码:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans
"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
">
<bean id="mailSender" <property name="host">
<value>smtp.126.com</value>
</property>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">25000</prop>
</props>
</property>
<property name="username">
<value>xiaojunwei_1987</value>
</property>
<property name="password">
<!--这里的是配置自己邮箱的密码,这里我输入的是假的,以*代替了,呵呵要不你们就知道我的邮箱密码了-->
<value>********</value>
</property>
</bean>
</beans>
java 代码:我自己加的注释,不一定准确哦。
package com.techcenter.mail;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessagePreparator;
public class SpringMail {
public static void main(String[] args) throws Exception {
//读取spring配置文件
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext-init.xml
");
//强制返回spring邮件发送器
JavaMailSender sender = (JavaMailSender) ctx.getBean("mailSender");
//创建对象并初始化
SpringMail springMail = new SpringMail();
//测试发送只有文本信息的简单测试
springMail.sendTextMail(sender);
//测试发送带附件的邮件
springMail.sendMimeMessage(sender);
}
private void sendTextMail(JavaMailSender sender) throws Exception {
//声明spring的简单邮件消息
SimpleMailMessage mail = new SimpleMailMessage();
mail.setTo("237888386@qq.com
");
mail.setFrom("xiaojunwei_1987@126.com
");
mail.setSubject("test by amigo");
mail.setText("spring Mail的简单测试");
sender.send(mail);
System.out.println("成功发送文本文件!");
}
private void sendMimeMessage(final JavaMailSender sender) throws Exception {
//附件文件集合
final List files = new ArrayList();
//扩展信息介质接口,需自己实现接口中的方法
MimeMessagePreparator mimeMail = new MimeMessagePreparator() {
public void prepare(MimeMessage mimeMessage) throws MessagingException {
//设置接收者信息 ,接收方式:直接发送,接收地址
// mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress(""));
mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress("237888386@qq.com
"));
mimeMessage.setFrom(new InternetAddress("xiaojunwei_1987@126.com
"));
mimeMessage.setSubject("Spring发送带附件的邮件", "gb2312");
//多部件的,可以看做一个邮件容器,包含正文、附件等
Multipart mp = new MimeMultipart();
//向Multipart添加正文
MimeBodyPart content = new MimeBodyPart();
content.setText("内含spring邮件发送的例子,请查收!");
//向MimeMessage添加(Multipart代表正文)
mp.addBodyPart(content);
//向Multipart添加附件,可以添加多个附件;
String path = System.getProperty("user.dir");
System.out.println(path);
// 这里是附件的路径,自己测试的时候可能要改的哦!
files.add("e://hehe.txt");
files.add(path+"\\src\\test\\java\\com\\techcenter\\mail\\SpringMail.java
");
Iterator it = files.iterator();
//遍历List,把附件放到邮件容器里面
while(it.hasNext()) {
MimeBodyPart attachFile = new MimeBodyPart();
String filename = it.next().toString();
//文件数据源
FileDataSource fds = new FileDataSource(filename);
//数据处理器
attachFile.setDataHandler(new DataHandler(fds));
//设置文件名
attachFile.setFileName(fds.getName());
mp.addBodyPart(attachFile);
}
files.clear();
//向Multipart添加MimeMessage
mimeMessage.setContent(mp);
mimeMessage.setSentDate(new Date());
}
};
//发送带附件的邮件
sender.send(mimeMail);
System.out.println("成功发送带附件邮件!");
}
}
发表评论
-
Java编程中“为了性能”尽量要做到的一些地方
2012-07-04 14:44 6221.慎用synchronized,尽量减小synchroniz ... -
利用Session防止表单重复提交
2011-12-13 18:36 11471 由于服务器缓慢或者 ... -
java format(MessageFormat)
2011-12-06 17:20 739java.text.Format |__java. ... -
java 主线程等待子线程执行完成后再执行
2011-12-06 09:47 3152原文:http://www.jiacheo.org/blog ... -
Ognl/MVEL/Aviator/JSEL 四种表达式引擎执行效率对比
2011-11-24 10:33 2935http://jindw.iteye.com/blog/732 ... -
java模拟javascript的encodeURI方法
2011-10-27 15:52 2892import java.io.UnsupportedEncod ... -
3种下载文件程序的思考,为何使用NIO进行异步网络通讯
2011-10-08 14:37 654原文链接:http://suhuanzheng7784877 ... -
cglib 动态代理
2011-08-12 10:35 711cglib is a powerful, high perfo ... -
【温故而知新】log4j输出多个自定义日志文件,动态配置路径
2011-08-10 15:38 8371. log4j输出多个自定义日志文件 log ... -
java7 新特性
2011-08-10 10:48 692原文链接:http://www.iteye ... -
Java版短网址(ShortUrl)的算法
2011-06-09 10:42 2725最近,我的项目中需要用到短网址(ShortUrl)的算法,于是 ... -
设计模式学习——适配器模式
2011-06-07 10:30 726某个类拥有我们所 ... -
UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
2010-10-14 18:38 836今天看到一篇好文,觉得还不错,褪去的记忆被唤醒:http:/ ... -
动态代理
2010-07-13 11:11 704http://www.iteye.com/topic/7103 ... -
ASCLL,Unicode 和 UTF-8
2010-05-15 13:36 14371.Ascll 算是比较早的编码,七位二进制数表示,当然在 ... -
String 详解
2010-05-12 10:29 763解析Java中的String对象的数据类型 1. 首先S ... -
判断数据的类型
2010-05-04 15:24 792// 字符类型 String if (pramets.get( ... -
关于ThreadLocal模式的体会
2010-03-18 11:00 1177本文转至::http://www.iteye.com/topi ... -
javaClassLoader类加载器详解<转>
2010-03-12 14:43 1018由于一个JDBC的基本封装 ... -
properties 文件 读写
2010-03-10 10:18 897import java.io.BufferedInputStr ...
相关推荐
Spring Use JavaMail SendEmail(spring使用javamail发送邮件的例子)
Spring整合JavaMail发送qq邮件,极简单的例子。看完就会。。。
javamail与spring结合的简单入门例子
JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件...这里提供一个操作JavaMail的例子,可以发送文本邮件,HTML邮件,附件,抄送人。
管理 Bean 从第一个 Spring 应用程式开始,逐步了解何谓依赖注入,以及如何使用 Spring 的容器功能来管理 Bean,了解 Bean 在 Spring 容器中的生命周期。 第一个 Spring 程式 BeanFactory、 ...
9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. Spring ...
9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. Spring JDBC包结构...
9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. Spring ...
spring整合freemarker实现发送邮件, html中内嵌图片,添加附件, 解决乱码问题. spring整合freemarker实现发送邮件, html中内嵌图片,添加附件, 解决乱码问题.
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...
将这数值弹出一个alert并且发信给指定的邮件地址 获取页面内所有地方的以"<< >>"为标示的这个符号代表书名号,获取之中的内容 使用正则表达式>> 功能点: 1)URL抓取页面。 2)正则表达式匹配。 3)邮件系统调用 请注意...
使用spring封装的JavaMail进行邮件发送的一个例子,这里我用的是Gmail邮箱,如需用其它邮箱服务器,对相应的端口,服务器地址,用户名密码做相应的修改即可
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...