- 浏览: 32752 次
- 性别:
- 来自: 承德
最新评论
-
zq726726:
请问 如果用spring 的话 怎么加配置???
Hibernate通用Dao设计。 -
woshihongshua:
一个自己写的图像操作包,实现了验证码识别等很多功能。 -
azure2a:
还真没试过,不过可以用上面的代码试试,不然估计要用图片二值化等 ...
趣味编程,利用zxing包设计QR码编码和解码程序。 -
qalong:
想问一下,如果QR的图片不清晰的时候,可以正常的解析吗?
趣味编程,利用zxing包设计QR码编码和解码程序。 -
lshoo:
JPA2的资料好啊!
学习Hibernate映射必读,JavaOne2009-JPA2映射的神秘之旅。
利用javamail发邮件,可以发送普通邮件,带附件和图片的邮件:
package util.mail;
import java.util.Date;
import java.util.HashSet;
import java.util.Properties;
import java.util.ResourceBundle;
import java.util.Set;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;
/**
* @author Lee
*
* 需要jaf-1_1_1及javamail-1_4_1的支持
*
*/
public class MailUtil {
private static Session session;
private static Transport sender;
private MailUtil(){
}
public static void createSession(){
if(session==null){
String protocol=ResourceBundle.getBundle("mail").getString("mail.transport.protocol");
String auth=ResourceBundle.getBundle("mail").getString("mail.smtp.auth");
boolean debug=Boolean.parseBoolean(ResourceBundle.getBundle("mail").getString("debug"));
createSession(protocol,auth,debug);
}
}
/**
*
* @param protocol
* @param auth
* @param Debug
* 用于创建发送邮件的配置类需要协议,是否认证,是否显示信息
*/
public static void createSession(String protocol,String auth,boolean Debug){
Properties props=new Properties();
props.setProperty("mail.transport.protocol",protocol);
props.setProperty("mail.smtp.auth",auth);
session=Session.getInstance(props);
session.setDebug(Debug);
}
/**
*
* @param from 发送人的地址
* @param to 接受人的地址
* @param title 标题
* @param body 邮件内容
* @param date 发送日期
* @return 返回邮件信息
* @throws AddressException
* @throws MessagingException
* 用于发送文本信息
*/
public static MimeMessage createTextMail(String from,String to,String title,String body,Date date) throws AddressException, MessagingException{
MimeMessage mail=new MimeMessage(session);
mail.setFrom(new InternetAddress(from));
mail.setRecipient(Message.RecipientType.TO,new InternetAddress(to));
mail.setSentDate(date);
mail.setSubject(title);
mail.setText(body);
mail.saveChanges();
return mail;
}
/**
*
* @param from
* @param to
* @param title
* @param body
* @param date
* @return 返回邮件信息
* @throws AddressException
* @throws MessagingException
* 用于发送html邮件
*/
public static MimeMessage createHtmlMail(String from,String to,String title,String body,Date date) throws AddressException, MessagingException{
MimeMessage mail=createTextMail(from,to,title,body,date);
mail.setContent(body,"text/html;charset=gb2312");
mail.saveChanges();
return mail;
}
/**
*
* @param from
* @param to
* @param title
* @param body
* @param date
* @param filenames
* @param imgnames
* @return 返回邮件信息
* @throws AddressException
* @throws MessagingException
* 创建带图片和附件的邮件
*/
public static MimeMessage createMultiMail(String from,String to,String title,String body,Date date,String[] filenames,String[] imgnames) throws AddressException, MessagingException{
MimeMessage mail=createHtmlMail(from,to,title,body,date);
MimeMultipart allMultipart=new MimeMultipart("mixed");
MimeMultipart contentMulti=new MimeMultipart("related");
MimeBodyPart contentPart=new MimeBodyPart();
MimeBodyPart htmlBody=new MimeBodyPart();
htmlBody.setContent(body,"text/html;charset=gb2312");
contentMulti.addBodyPart(htmlBody);
if(imgnames!=null){
for(MimeBodyPart part:createImgAttachment(imgnames)){
contentMulti.addBodyPart(part);
}
}
contentPart.setContent(contentMulti);
allMultipart.addBodyPart(contentPart);
if(filenames!=null){
for(MimeBodyPart part:createAttachment(filenames)){
allMultipart.addBodyPart(part);
}
}
mail.setContent(allMultipart);
mail.saveChanges();
return mail;
}
/**
*
* @param server 服务器
* @param user 用户
* @param pass 密码
* @return
* @throws MessagingException
* 建立邮件发送类
*/
public static Transport createSender(String server,String user,String pass) throws MessagingException{
sender=session.getTransport();
sender.connect(server,user,pass);
return sender;
}
public static Transport createSender() throws MessagingException{
if(sender==null){
String server=ResourceBundle.getBundle("mail").getString("server");
String user=ResourceBundle.getBundle("mail").getString("user");
String pass=ResourceBundle.getBundle("mail").getString("pass");
return createSender(server,user,pass);
}
return sender;
}
public static void send(MimeMessage mail) throws MessagingException{
createSession();
createSender();
sender.sendMessage(mail,mail.getRecipients(Message.RecipientType.TO));
}
public static void closeSender() throws MessagingException{
if(sender.isConnected())sender.close();
sender=null;
session=null;
}
public static Set<MimeBodyPart> createAttachment(String[] filenames) throws MessagingException{
Set<MimeBodyPart> attachments=new HashSet<MimeBodyPart>();
for(int i=0;i<filenames.length;i++){
MimeBodyPart attachment=new MimeBodyPart();
FileDataSource fds=new FileDataSource(filenames);
attachment.setDataHandler(new DataHandler(fds));
attachment.setFileName(filenames.substring(filenames.lastIndexOf("\\")+1));
attachments.add(attachment);
}
return attachments;
}
public static Set<MimeBodyPart> createImgAttachment(String[] imgnames) throws MessagingException{
Set<MimeBodyPart> attachments=new HashSet<MimeBodyPart>();
for(int i=0;i<imgnames.length;i++){
MimeBodyPart attachment=new MimeBodyPart();
FileDataSource fds=new FileDataSource(imgnames);
attachment.setDataHandler(new DataHandler(fds));
attachment.setFileName(imgnames.substring(imgnames.lastIndexOf("\\")+1));
attachment.setContentID(imgnames.substring(imgnames.lastIndexOf("\\")+1));
attachments.add(attachment);
}
return attachments;
}
public static void main(String[] args) throws AddressException, MessagingException{
MailUtil.send(MailUtil.createMultiMail("azure2a@163.com","azure2a@163.com","测试","<b>测试邮件<img src=\"cid:a.jpg\"></b>",new Date(),new String[]{"D:\\Java\\a.txt","D:\\Java\\a.jpg"},new String[]{"D:\\Java\\a.jpg"}));
MailUtil.send(MailUtil.createMultiMail("azure2a@163.com","azure2aa@sina.com","测试","<b>测试邮件<img src=\"cid:a.jpg\"></b>",new Date(),new String[]{"D:\\Java\\a.txt","D:\\Java\\a.jpg"},new String[]{"D:\\Java\\a.jpg"}));
MailUtil.closeSender();
}
}
配置文件
mail.properties
server=smtp.163.com
user=azure2a
pass=
mail.transport.protocol=smtp
mail.smtp.auth=true
debug=true
package util.mail;
import java.util.Date;
import java.util.HashSet;
import java.util.Properties;
import java.util.ResourceBundle;
import java.util.Set;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;
/**
* @author Lee
*
* 需要jaf-1_1_1及javamail-1_4_1的支持
*
*/
public class MailUtil {
private static Session session;
private static Transport sender;
private MailUtil(){
}
public static void createSession(){
if(session==null){
String protocol=ResourceBundle.getBundle("mail").getString("mail.transport.protocol");
String auth=ResourceBundle.getBundle("mail").getString("mail.smtp.auth");
boolean debug=Boolean.parseBoolean(ResourceBundle.getBundle("mail").getString("debug"));
createSession(protocol,auth,debug);
}
}
/**
*
* @param protocol
* @param auth
* @param Debug
* 用于创建发送邮件的配置类需要协议,是否认证,是否显示信息
*/
public static void createSession(String protocol,String auth,boolean Debug){
Properties props=new Properties();
props.setProperty("mail.transport.protocol",protocol);
props.setProperty("mail.smtp.auth",auth);
session=Session.getInstance(props);
session.setDebug(Debug);
}
/**
*
* @param from 发送人的地址
* @param to 接受人的地址
* @param title 标题
* @param body 邮件内容
* @param date 发送日期
* @return 返回邮件信息
* @throws AddressException
* @throws MessagingException
* 用于发送文本信息
*/
public static MimeMessage createTextMail(String from,String to,String title,String body,Date date) throws AddressException, MessagingException{
MimeMessage mail=new MimeMessage(session);
mail.setFrom(new InternetAddress(from));
mail.setRecipient(Message.RecipientType.TO,new InternetAddress(to));
mail.setSentDate(date);
mail.setSubject(title);
mail.setText(body);
mail.saveChanges();
return mail;
}
/**
*
* @param from
* @param to
* @param title
* @param body
* @param date
* @return 返回邮件信息
* @throws AddressException
* @throws MessagingException
* 用于发送html邮件
*/
public static MimeMessage createHtmlMail(String from,String to,String title,String body,Date date) throws AddressException, MessagingException{
MimeMessage mail=createTextMail(from,to,title,body,date);
mail.setContent(body,"text/html;charset=gb2312");
mail.saveChanges();
return mail;
}
/**
*
* @param from
* @param to
* @param title
* @param body
* @param date
* @param filenames
* @param imgnames
* @return 返回邮件信息
* @throws AddressException
* @throws MessagingException
* 创建带图片和附件的邮件
*/
public static MimeMessage createMultiMail(String from,String to,String title,String body,Date date,String[] filenames,String[] imgnames) throws AddressException, MessagingException{
MimeMessage mail=createHtmlMail(from,to,title,body,date);
MimeMultipart allMultipart=new MimeMultipart("mixed");
MimeMultipart contentMulti=new MimeMultipart("related");
MimeBodyPart contentPart=new MimeBodyPart();
MimeBodyPart htmlBody=new MimeBodyPart();
htmlBody.setContent(body,"text/html;charset=gb2312");
contentMulti.addBodyPart(htmlBody);
if(imgnames!=null){
for(MimeBodyPart part:createImgAttachment(imgnames)){
contentMulti.addBodyPart(part);
}
}
contentPart.setContent(contentMulti);
allMultipart.addBodyPart(contentPart);
if(filenames!=null){
for(MimeBodyPart part:createAttachment(filenames)){
allMultipart.addBodyPart(part);
}
}
mail.setContent(allMultipart);
mail.saveChanges();
return mail;
}
/**
*
* @param server 服务器
* @param user 用户
* @param pass 密码
* @return
* @throws MessagingException
* 建立邮件发送类
*/
public static Transport createSender(String server,String user,String pass) throws MessagingException{
sender=session.getTransport();
sender.connect(server,user,pass);
return sender;
}
public static Transport createSender() throws MessagingException{
if(sender==null){
String server=ResourceBundle.getBundle("mail").getString("server");
String user=ResourceBundle.getBundle("mail").getString("user");
String pass=ResourceBundle.getBundle("mail").getString("pass");
return createSender(server,user,pass);
}
return sender;
}
public static void send(MimeMessage mail) throws MessagingException{
createSession();
createSender();
sender.sendMessage(mail,mail.getRecipients(Message.RecipientType.TO));
}
public static void closeSender() throws MessagingException{
if(sender.isConnected())sender.close();
sender=null;
session=null;
}
public static Set<MimeBodyPart> createAttachment(String[] filenames) throws MessagingException{
Set<MimeBodyPart> attachments=new HashSet<MimeBodyPart>();
for(int i=0;i<filenames.length;i++){
MimeBodyPart attachment=new MimeBodyPart();
FileDataSource fds=new FileDataSource(filenames);
attachment.setDataHandler(new DataHandler(fds));
attachment.setFileName(filenames.substring(filenames.lastIndexOf("\\")+1));
attachments.add(attachment);
}
return attachments;
}
public static Set<MimeBodyPart> createImgAttachment(String[] imgnames) throws MessagingException{
Set<MimeBodyPart> attachments=new HashSet<MimeBodyPart>();
for(int i=0;i<imgnames.length;i++){
MimeBodyPart attachment=new MimeBodyPart();
FileDataSource fds=new FileDataSource(imgnames);
attachment.setDataHandler(new DataHandler(fds));
attachment.setFileName(imgnames.substring(imgnames.lastIndexOf("\\")+1));
attachment.setContentID(imgnames.substring(imgnames.lastIndexOf("\\")+1));
attachments.add(attachment);
}
return attachments;
}
public static void main(String[] args) throws AddressException, MessagingException{
MailUtil.send(MailUtil.createMultiMail("azure2a@163.com","azure2a@163.com","测试","<b>测试邮件<img src=\"cid:a.jpg\"></b>",new Date(),new String[]{"D:\\Java\\a.txt","D:\\Java\\a.jpg"},new String[]{"D:\\Java\\a.jpg"}));
MailUtil.send(MailUtil.createMultiMail("azure2a@163.com","azure2aa@sina.com","测试","<b>测试邮件<img src=\"cid:a.jpg\"></b>",new Date(),new String[]{"D:\\Java\\a.txt","D:\\Java\\a.jpg"},new String[]{"D:\\Java\\a.jpg"}));
MailUtil.closeSender();
}
}
配置文件
mail.properties
server=smtp.163.com
user=azure2a
pass=
mail.transport.protocol=smtp
mail.smtp.auth=true
debug=true
发表评论
-
Hibernate通用Dao设计。
2011-07-19 16:15 3225hibernate的通用Dao简化了程序,增加了开发过程, ... -
趣味编程,利用zxing包设计QR码编码和解码程序。
2011-04-20 23:03 24861、什么是RQ码? QR码是二维条码的一种,1994年由日 ... -
利用JEXL实现实时执行对象方法。
2011-02-14 16:50 1349使用情况:有时候我们在编译时并不知道可能执行什么方法,或者我们 ... -
cglib实现无接口代理
2011-02-13 22:52 1867使用情况:有时候我们需要为一个类建立代理对象,当执行原类的 ... -
学习Hibernate映射必读(二),JavaOne2009-JPA2新特征。
2011-02-10 19:46 999JavaOne2009-JPA2新特征介绍了JPA2的一些 ... -
Extjs Grid 带分页多选时的某种解决方案。
2011-02-10 19:42 4207使用情况:使用Extjs的Grid时使用远程分页时有一个问 ... -
学习Hibernate映射必读,JavaOne2009-JPA2映射的神秘之旅。
2011-02-07 12:51 942JavaOne2009-JPA2映射的神秘之旅,学习Hib ... -
使用HTMLPARSER和HTTPCLIENT制作网络爬虫,附赠相关技术文档。
2011-02-06 17:05 1995利用HTMLPARSER和HTTPCLIENT制作的网络爬 ... -
Java模式速查手册
2011-02-05 16:22 1159自己按照阎宏《Java与模 ... -
一个自己写的图像操作包,实现了验证码识别等很多功能。
2011-02-05 00:03 2018自己设计的图像操作包,实现很多功能。 包括三个类。 一、Ima ... -
一个文件操作类。
2009-12-12 14:21 317一个文件操作类,使用 ... -
循环链表
2009-11-13 09:54 58Java与算法的课后题,实现一个循环链表。 public c ... -
JAVA与模式读书笔记。
2009-10-06 11:08 127JAVA与模式读书笔记,自己读Java与模式时总结的书上的一些 ... -
呵呵,基础知识复习-类加载顺序。
2009-09-29 09:36 76有些基础知识其实自己也是很模糊,老是搞不清,比如一个类里的 ... -
自己设计的简单的验证框架。
2009-09-25 12:07 149自己设计的一个简单的验证框架,参照SpringSecrity。 ... -
cglib实现无接口代理
2009-09-24 11:29 182代理类。 package util.proxy; impor ... -
自己做的一组字符串操作方法,可能会用上。
2009-09-24 11:29 1050不过都是用的String效率可能不太高。 package ut ... -
图片的操作。
2009-09-24 11:25 110图片的操作类,实现剪切,缩放,旋转,水印,滤镜,未完成,有兴趣 ... -
线程池实现网络抓取器.
2009-09-24 11:24 54利用线程池实现的网络抓取工具,相似于google的功能,当然可 ... -
java验证码。
2009-09-24 11:23 1092package util.img; import java.a ...
相关推荐
使用 JavaMail 代发邮件 使用 JavaMail 库可以轻松地在 Java 应用程序中发送电子邮件。JavaMail 是一个 Java API,用于在 Java 应用程序中发送和接收电子邮件。它提供了一个抽象层,允许开发者使用不同的电子邮件...
在这个资源中,我们将探讨如何使用 JavaMail 实现邮件的发送、接收、查看邮件数量以及未读邮件的标记为已读。 首先,让我们从发送邮件开始。在 JavaMail 中,你需要创建一个 `Session` 对象来配置邮件服务器的连接...
用JAVAMAIL发邮件(含附件),. TXT用JAVAMAIL发邮件(含附件),.TXT
3. 构造邮件消息:使用`Message`类创建一个邮件对象,并设置发件人、收件人、主题和正文。 ```java Message message = new MimeMessage(session); message.setFrom(new InternetAddress("your-email@example.com"))...
总的来说,"Apusic上用JavaMail发邮件"涉及到的主要知识点有:Apusic应用服务器的使用、JavaMail API的导入和配置、SMTP协议的理解、JavaMail API的基本操作如创建`Session`、`Message`和`Transport`对象,以及处理...
标题提到的"用javamail发邮件必须的三个jar包.7z"包含了三个核心的JAR文件:mail.jar、activation.jar和additionnal.jar,它们对于JavaMail的邮件发送功能至关重要。 1. **mail.jar**: 这是JavaMail的主要库,包含...
在阅读博文《『JAVA基础』使用JavaMail发邮件的实例》后,你可以进一步了解如何处理更复杂的邮件场景,如HTML格式的邮件、多语言支持以及错误处理等。这个实例不仅提供了源码,还可能包含了一些实用工具,帮助你更好...
这个例子展示了如何使用JavaMail发送带附件的邮件。需要注意的是,实际应用中应处理各种异常,确保邮件发送的健壮性。此外,如果你的邮件服务器需要身份验证,还需要提供一个Authenticator来处理登录信息。 总的来...
基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件...
所需jar包 博文链接:https://jdh.iteye.com/blog/206366
需要网讯的webex打开,讲解利用JavaMail发送邮件的开发过程。
JavaMail是一个广泛使用的Java库,用于处理电子邮件的发送和接收。它提供了丰富的API,使得开发者能够在Java应用程序中方便地实现SMTP、POP3和IMAP等邮件协议的功能。本项目是关于如何利用JavaMail API和Spring Boot...
这涉及到JavaMail API的使用,如`Session`对象用于配置邮件服务器连接参数,`Message`对象代表一封邮件,`Transport`类则负责实际的邮件发送操作。收邮件时,会通过`Store`对象连接到邮件服务器,获取`Folder`并读取...
3. **创建邮件消息**:使用`Message`类实例化一个邮件对象,并设置必要的属性,如发件人、收件人、主题和正文。 ```java Message message = new MimeMessage(session); message.setFrom(new InternetAddress(...
在本文中,我们将深入探讨如何使用 JavaMail 收取邮件,包括了解 POP3 和 IMAP 协议以及如何通过 JavaMail API 实现邮件的接收。 首先,我们需要知道发送邮件通常使用 SMTP(简单邮件传输协议),而接收邮件则涉及...