import java.util.Properties;
import common.util.Email_Autherticatorbean;
import javax.mail.Authenticator;
import javax.mail.internet.InternetAddress;
import org.apache.commons.lang.StringUtils;
import javax.mail.internet.MimeBodyPart;
import javax.mail.Multipart;
import javax.activation.FileDataSource;
import javax.mail.internet.MimeMultipart;
import javax.activation.DataHandler;
import javax.mail.internet.MimeUtility;
import java.util.Date;
/**
* 利用java.mail的邮件发送程序
*/
public class SendMailTest
{
public static void main(String[] args)
{
String title = "titleTest";//所发送邮件的标题
String from ="sir_znp@163.com";//从那里发送
String sendTo[] = {"znp@163.net","sir_znp@163.com"};//发送到那里
//邮件的文本内容,可以包含html标记则显示为html页面
String content = "mail test!!!!!!<br><a href=#>aaa</a>";
//所包含的附件,及附件的重新命名
String fileNames[] = {"F:\\music\\text1.txt,text1.txt","F:\\music\\text2.txt,text2.txt"};
try {
// MailSender mailsender = new MailSender();
sendmail(title, from, sendTo, content, fileNames,"text/html;charset=gb2312");
} catch (Exception ex) { ex.printStackTrace(); }
}
public static void sendmail(String subject, String from, String[] to, String text, String[] filenames,String mimeType) throws Exception
{
//ResourceBundle mailProps = ResourceBundle.getBundle("mail"); 可以从配置文件读取相应的参数
Properties props = new Properties();
String smtp = "smtp.163.com"; //设置发送邮件所用到的smtp
String servername = "sir_znp";
String serverpaswd = "123";
javax.mail.Session mailSession; //邮件会话对象
javax.mail.internet.MimeMessage mimeMsg; //MIME邮件对象
props = java.lang.System.getProperties(); //获得系统属性对象
props.put("mail.smtp.host", smtp); //设置SMTP主机
props.put("mail.smtp.auth", "true"); //是否到服务器用户名和密码验证
//到服务器验证发送的用户名和密码是否正确
Email_Autherticatorbean myEmailAuther = new Email_Autherticatorbean(servername, serverpaswd);
//设置邮件会话
mailSession = javax.mail.Session.getInstance(props, (Authenticator) myEmailAuther);
//设置传输协议
javax.mail.Transport transport = mailSession.getTransport("smtp");
//设置from、to等信息
mimeMsg = new javax.mail.internet.MimeMessage(mailSession);
if (!StringUtils.isEmpty(from))
{
InternetAddress sentFrom = new InternetAddress(from);
mimeMsg.setFrom(sentFrom); //设置发送人地址
}
InternetAddress[] sendTo = new InternetAddress[to.length];
for (int i = 0; i < to.length; i++)
{
System.out.println("发送到:" + to[i]);
sendTo[i] = new InternetAddress(to[i]);
}
mimeMsg.setRecipients(javax.mail.internet.MimeMessage.RecipientType.TO, sendTo);
mimeMsg.setSubject(subject, "gb2312");
MimeBodyPart messageBodyPart1 = new MimeBodyPart();
//messageBodyPart.setText(UnicodeToChinese(text));
messageBodyPart1.setContent(text, mimeType);
Multipart multipart = new MimeMultipart();//附件传输格式
multipart.addBodyPart(messageBodyPart1);
for (int i = 0; i < filenames.length; i++) {
MimeBodyPart messageBodyPart2 = new MimeBodyPart();
//选择出每一个附件名
String filename = filenames[i].split(",")[0];
System.out.println("附件名:" + filename);
String displayname = filenames[i].split(",")[1];
//得到数据源
FileDataSource fds = new FileDataSource(filename);
//得到附件本身并至入BodyPart
messageBodyPart2.setDataHandler(new DataHandler(fds));
//得到文件名同样至入BodyPart
//messageBodyPart2.setFileName(displayname);
// messageBodyPart2.setFileName(fds.getName());
messageBodyPart2.setFileName(MimeUtility.encodeText(displayname));
multipart.addBodyPart(messageBodyPart2);
}
mimeMsg.setContent(multipart);
//设置信件头的发送日期
mimeMsg.setSentDate(new Date());
mimeMsg.saveChanges();
//发送邮件
transport.send(mimeMsg);
transport.close();
}
}
验证类
package common.util;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class Email_Autherticatorbean extends Authenticator
{
private String m_username = null;
private String m_userpass = null;
public void setUsername(String username)
{
m_username = username;
}
public void setUserpass(String userpass)
{
m_userpass = userpass;
}
public Email_Autherticatorbean(String username, String userpass)
{
super();
setUsername(username);
setUserpass(userpass);
}
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(m_username,m_userpass);
}
}
- 浏览: 377461 次
- 性别:
- 来自: 北京
博客专栏
-
Spring Roo杂谈
浏览量:0
文章分类
- 全部博客 (418)
- SPRING (19)
- WEB前端 (15)
- IBATIS (4)
- HIBERNATE (0)
- JSF (0)
- WEBSERVICES (0)
- DESIGN PATTERN (9)
- UML (3)
- J2SE (30)
- BASIC CONCEPT (2)
- EJB (1)
- interview (71)
- cache (6)
- 设计 (6)
- NONSENSE (1)
- Problems (28)
- time (3)
- Future Problems (2)
- INFO (24)
- Performance (12)
- java (14)
- core (1)
- lib (1)
- famous (9)
- VersionManage (26)
- Big Data (10)
- netty (0)
- exception (1)
- design (1)
- 规则引擎 (3)
- Method (22)
- nosql (14)
- nosql-redis (2)
- DATABASE (32)
- Cluster (6)
- Linux (13)
- 高并发 (2)
- sport (0)
- Arithmetic (8)
- TEST (1)
- Python (7)
- 公共平台 (3)
- spring roo (7)
- server (1)
- Cases (1)
- security (1)
- opensource (8)
- architect (5)
- O2O (0)
- P2P (0)
最新评论
-
liutingna86:
程序没有提取新的链接,只是分析url.txt中链接页面的内容是 ...
Java编程技巧:小爬虫程序(转) -
u013680195:
CSS基础教程17篇 此教程共17篇,由浅到深、循序渐进的讲述 ...
每个Web开发者必备的9个软技能(转) -
zhb8015:
有一个解决的方法:把DTD文件从mybatis.jar中拿出来 ...
求助: exception is java.net.UnknownHostException: mybatis.org -
zhb8015:
问题可能找到了,spring-test对于(@ContextC ...
求助:NoSuchBeanDefinitionException: No bean named 'userService' is defined
发表评论
-
Memcached note
2015-10-14 22:34 585下载并安装Memcache服务器端服务器端主要是安装memc ... -
(转)阿里宝宝的漫漫求职路
2015-10-11 10:34 2646http://hujiaweibujidao.github ... -
mysql problems
2015-10-10 09:51 676今天在一台机器(OS为vista 64bit)上装MySQ ... -
Target runtime Apache Tomcat v6.0 is not defined.错误解决方法
2015-08-19 22:03 390Eclipse导入工程后工程上显示一个小红叉,但工程里没有文 ... -
Interview questions
2015-08-14 13:58 659yx: 1、hashmap原理,如何存取,为什么初始化为 ... -
gzip压缩
2015-08-04 18:54 590GZIP压缩:将压缩后的文本文件,发送给浏览器,减少流 ... -
eclipse 内置注解设置
2015-07-21 19:12 6081、注释设置 在菜单栏Window--->Pref ... -
程序员7大技能 (转)
2015-07-13 10:11 652源自: http://www.codeceo. ... -
面试题 合集
2015-07-09 18:13 541http://download.csdn.net/album/ ... -
喜欢算法的看这里
2015-07-09 18:10 595纯笔记 !!!哈 http://download.csd ... -
logback
2015-07-07 14:05 784一、logback的介绍 ... -
Caused by: java.lang.IncompatibleClassChangeError: class org.hibernate.cfg.Exten
2015-07-04 22:44 1149maven pom.xml关于hibernate的配置和异常 ... -
Cannot change version of project facet Dynamic Web Module to 2.4
2015-07-02 15:07 580在工程目录下有一个.settings文件夹,打开org.ecl ... -
spring http invoke(rpc)
2015-06-25 16:02 9916.4 使用Spring HTTP invoker进行远程调 ... -
阿里要求
2015-06-19 23:02 6041、扎实的Java编程基础,熟悉各种设计模式,熟练掌握Spri ... -
ubuntu安装jdk
2015-06-10 15:52 593第一步:下载 jdk-7u45-linux-x64.tar. ... -
telent安装ftp
2015-06-10 15:26 545ubuntu安装ftp服务器 1: 安装vsftpd ~ ... -
win7打开 telnet
2015-06-10 15:26 441http://jingyan.baidu.com ... -
intel vt-x处于禁用状态
2015-06-10 09:53 894vm10安装ubuntu 64时遇到 问题:(thinkce ... -
spring roo 笔记
2015-06-04 17:31 830对spring roo 的一些总结:源自spring ro ...
相关推荐
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
java发送邮件2实例,内有java包。我原来是在myEcilpse上进行测试的,实例一是结合ssh框架使用,非常方便。实例二直接用servlet发送,稍微繁琐
java mail 邮件发送 代码文档 java_mail_发送邮件代码 发送邮件及邮件附件java代码实例(支持多附件_群发送)
JAVA 发送文本格和HTML格式并带图片链接的邮件实例,图片可以为附件可以为邮件正文显示,可以为图片添加超链接
实例71 配置Properties带附件发送邮件 175 实例72 资源国际化(Properties) 179 常见问题 读取Properties文件出现中文乱码 182 第9章 Java异常处理与反射机制 183 实例73 运用throws、throw、try与catch 183 ...
全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
使用基本的JAVAMAIL API 实现邮件收发与附件的附加
// 生成附件组件的实例 } catch (Exception e) { return false; } return true; } /** * 设置SMTP的身份认证 */ public void setNeedAuth(boolean need) { if (props == null) props = System.getProperties(); if ...
该实例里包含了单个邮件发送、群发邮件、单个邮件加附件、群发邮件加附件、接收邮件等功能,希望对需要的朋友有所帮忙,我想这不会让看过的人失望的。
压缩包中有纯java程序发送邮件其中有发送纯文本格式、带附件格式、图片格式、附件图片并显示格式。
新手实例,Java简单的实现了qq和163邮箱发送和接收邮件操作,同步实现附件下载功能。参考注意邮箱的授权码需要自己去验证,详情可以百度。
复杂邮件程序完整Java源码,支持添加附件,图片,HTML格式文本,支持远程WebService调用*/ package com.hx.mail; import java.io.File; import java.util.Map; import javax.mail.Message.RecipientType; /** * ...
这个实例实现了构建邮件服务器、简单的E-mail发送、发送附件、带身份验证的E-mail发送、跨代理的E-mail发送、 接收E-mail、在Applet中收取E-mail、E-mail口令验证功能
sendcloud4j 是 SendCloud 邮件服务的 Java 语言封装包。特点:支持 邮箱API v2 普通发送和模板发送支持批量发送(模板批量变量替换)支持添加附件发送Maven <groupId>io.jstack <artifactId>sendcloud4j ...
发送带有附件的邮件可以调用 sendMultiPartEmail(); 3.发送HTML的邮件可以调用 sendHtmlEmail(); <br> 4.以上三种邮件发送方式都可以调用 sendEmail(); 但在调用前必需要实例化 EMailBean.java 对象