- 浏览: 157938 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 6471.慎用synchronized,尽量减小synchroniz ... -
利用Session防止表单重复提交
2011-12-13 18:36 11771 由于服务器缓慢或者 ... -
java format(MessageFormat)
2011-12-06 17:20 767java.text.Format |__java. ... -
java 主线程等待子线程执行完成后再执行
2011-12-06 09:47 3354原文:http://www.jiacheo.org/blog ... -
Ognl/MVEL/Aviator/JSEL 四种表达式引擎执行效率对比
2011-11-24 10:33 3002http://jindw.iteye.com/blog/732 ... -
java模拟javascript的encodeURI方法
2011-10-27 15:52 2938import java.io.UnsupportedEncod ... -
3种下载文件程序的思考,为何使用NIO进行异步网络通讯
2011-10-08 14:37 694原文链接:http://suhuanzheng7784877 ... -
cglib 动态代理
2011-08-12 10:35 742cglib is a powerful, high perfo ... -
【温故而知新】log4j输出多个自定义日志文件,动态配置路径
2011-08-10 15:38 8701. log4j输出多个自定义日志文件 log ... -
java7 新特性
2011-08-10 10:48 732原文链接:http://www.iteye ... -
Java版短网址(ShortUrl)的算法
2011-06-09 10:42 2746最近,我的项目中需要用到短网址(ShortUrl)的算法,于是 ... -
设计模式学习——适配器模式
2011-06-07 10:30 748某个类拥有我们所 ... -
UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
2010-10-14 18:38 871今天看到一篇好文,觉得还不错,褪去的记忆被唤醒:http:/ ... -
动态代理
2010-07-13 11:11 740http://www.iteye.com/topic/7103 ... -
ASCLL,Unicode 和 UTF-8
2010-05-15 13:36 14621.Ascll 算是比较早的编码,七位二进制数表示,当然在 ... -
String 详解
2010-05-12 10:29 800解析Java中的String对象的数据类型 1. 首先S ... -
判断数据的类型
2010-05-04 15:24 827// 字符类型 String if (pramets.get( ... -
关于ThreadLocal模式的体会
2010-03-18 11:00 1199本文转至::http://www.iteye.com/topi ... -
javaClassLoader类加载器详解<转>
2010-03-12 14:43 1039由于一个JDBC的基本封装 ... -
properties 文件 读写
2010-03-10 10:18 926import java.io.BufferedInputStr ...
相关推荐
在IT行业中,Spring框架是Java开发中的一个核心组件,它为构建企业级应用程序提供了广泛的功能。其中,Spring的JavaMail支持使得开发者能够轻松地实现邮件发送功能。在本篇文章中,我们将深入探讨如何利用Spring来...
在IT行业中,Spring框架是Java开发中的一个核心组件,它为构建高质量的、可维护的、松耦合的应用程序提供了强大的支持。JavaMail API则是一个用于处理电子邮件的开放源码库,它允许开发者通过编程方式发送、接收和...
总的来说,JavaMail是一个强大的工具,它允许开发者用Java编写功能丰富的邮件应用程序。通过理解`Session`、`Message`、`Store`、`Folder`以及`MimeMultipart`和`MimeBodyPart`的用法,你可以构建出能够处理各种邮件...
JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件...这里提供一个操作JavaMail的例子,可以发送文本邮件,HTML邮件,附件,抄送人。
在IT行业中,Spring框架是Java领域广泛使用的轻量级应用框架,它提供了丰富的功能,包括依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等。而Freemarker则是一种强大的模板引擎,常用于生成动态HTML、XML...
在本文中,我们将探讨如何使用Spring和JavaMail发送动态生成的3D图像,特别是针对Web应用环境。在处理高流量的Web应用时,我们需要避免在服务器上存储大量的3D图像,以节省存储空间。这里的关键是利用JavaMail的特性...
以下是一个使用Spring发送简单纯文本邮件的例子: ```java import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; public void sendSimpleMessage...
在IT行业中,Spring框架是Java开发中的一个核心组件,它提供了丰富的功能,包括但不限于依赖注入、面向切面编程以及各种实用工具。其中,Spring的JavaMailSenderImpl是用于发送电子邮件的一个重要工具,它使得开发者...
在IT行业中,Spring框架是Java开发中的一个核心组件,它为构建高质量的、可维护的、松耦合的应用程序提供了强大的支持。而Spring集成邮件服务则是一个常见的需求,特别是对于那些需要发送确认邮件、通知或者报告的...
`MimeMessage`是`Message`的一个实现,支持多部分和非文本格式的邮件。通过`MimeMessage`,你可以设置发件人、收件人、主题和邮件正文。`InternetAddress`类用于处理邮件地址。 接着,使用`Transport`类发送邮件。`...
2. **SpringMail**: Spring框架的一个模块,它简化了JavaMail API的使用,通过Spring的依赖注入和配置模型,使得邮件发送变得更加便捷。 3. **配置SpringMail**: 在Spring项目中,我们通常会创建一个`MailSender` ...
无论是从技术角度还是从实际应用场景来看,Spring都是一个值得深入学习和使用的框架。通过学习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包结构...