package
util;
import
java.io.InputStream;
import
java.util.Properties;
import
javax.activation.DataHandler;
import
javax.activation.FileDataSource;
import
javax.mail.BodyPart;
import
javax.mail.Message;
import
javax.mail.Multipart;
import
javax.mail.Session;
import
javax.mail.Transport;
import
javax.mail.internet.InternetAddress;
import
javax.mail.internet.MimeBodyPart;
import
javax.mail.internet.MimeMessage;
import
javax.mail.internet.MimeMultipart;
/***
* Send edm to mail
* Jerry.li
* 2012-05-02
*/
public
class
EdmMail {
private
static
String MAIL_TITLE =
null
;
private
String mailServerHost =
""
;
private
String fromAddress =
""
;
private
String toAddress =
""
;
private
MimeMessage mimemsg;
private
Session session;
private
Properties properties;
private
Multipart part;
private
String username =
""
;
private
String password =
""
;
private
String profile =
"search.properties"
;
private
EdmMail(){
getValues();
setSmtpHost(mailServerHost);
getMailSession();
}
public
EdmMail(String sub){
this
();
MAIL_TITLE = sub;
}
private
boolean
getValues(){
Properties proties =
null
;
InputStream input =
null
;
try
{
input = EdmMail.
class
.getClassLoader().getResourceAsStream(profile);
proties =
new
Properties();
proties.load(input);
mailServerHost = proties.getProperty(
"MAIL_HOST"
);
fromAddress = proties.getProperty(
"MAIL_FROM"
);
username = proties.getProperty(
"MAIL_USERNAME"
);
password = proties.getProperty(
"MAIL_PASSWORD"
);
toAddress = proties.getProperty(
"MAILTO_LIST"
);
return
true
;
}
catch
(Exception e) {
System.out.println(
"读取配置文件出错!"
+e);
return
false
;
}
}
/***
* 设置SMTP主机
*/
private
void
setSmtpHost(String mailhost){
if
(properties ==
null
){
properties = System.getProperties();
}
properties.setProperty(
"mail.smtp.host"
, mailhost);
}
/***
* 获得邮件会话对象
* 创建MimeMessage对象
*/
private
boolean
getMailSession(){
try
{
session = Session.getDefaultInstance(properties,
null
);
}
catch
(Exception e) {
System.out.println(
"获取邮件会话对象出错,原因:"
+e);
return
false
;
}
try
{
mimemsg =
new
MimeMessage(session);
part =
new
MimeMultipart();
return
true
;
}
catch
(Exception e) {
System.out.println(
"创建Mime邮件对象出错,原因:"
+e);
return
false
;
}
}
/***
* 设置smtp身份认证
* mail.smtp.auth = true
*/
private
void
setSmtpAuth(
boolean
bool){
if
(properties ==
null
){
properties = System.getProperties();
}
if
(bool){
properties.put(
"mail.smtp.auth"
,
"true"
);
}
else
{
properties.put(
"mail.smtp.auth"
,
"false"
);
}
}
/***
* 设置邮件的主题
*/
private
boolean
setMailSub(String mailsubject){
try
{
mimemsg.setSubject(mailsubject,
"GBK"
);
return
true
;
}
catch
(Exception e) {
System.out.println(
"设置邮件标题出错,原因:"
+e);
return
false
;
}
}
/***
* 设置邮件体格式
*/
private
boolean
setMailBody(String mailBody){
BodyPart bdyPart =
new
MimeBodyPart();
try
{
bdyPart.setContent(mailBody,
"text/html;charset=GBK"
);
part.addBodyPart(bdyPart);
return
true
;
}
catch
(Exception e) {
System.out.println(
"设置邮件体格式出错,原因:"
+e);
return
false
;
}
}
/***
* 添加邮件附件
*/
private
boolean
addAttach(String filePath){
BodyPart bdy =
new
MimeBodyPart();
try
{
FileDataSource dataSource =
new
FileDataSource(filePath);
bdy.setDataHandler(
new
DataHandler(dataSource));
bdy.setFileName(dataSource.getName());
part.addBodyPart(bdy);
return
true
;
}
catch
(Exception e) {
System.out.println(
"添加附件:"
+filePath+
"出错,原因:"
+e);
return
false
;
}
}
/***
* 设置邮件发送人
*/
private
boolean
setMailFrom(String from){
try
{
mimemsg.setFrom(
new
InternetAddress(from));
return
true
;
}
catch
(Exception e) {
System.out.println(
"设置邮件发送人:"
+from+
"出错,原因:"
+e);
return
false
;
}
}
/***
* 设置邮件接收人
*/
private
boolean
setMailTo(String mailto){
if
(mailto ==
null
){
return
false
;
}
try
{
mimemsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(mailto));
return
true
;
}
catch
(Exception e) {
System.out.println(
"设置邮件接收人:"
+mailto+
"出错,原因:"
+e);
return
false
;
}
}
/***
* 发送邮件
*/
private
boolean
sendout(){
try
{
mimemsg.setContent(part);
mimemsg.saveChanges();
System.out.println(
"开始发送邮件......"
);
Session mailSession = Session.getInstance(properties,
null
);
Transport tsport = mailSession.getTransport(
"smtp"
);
tsport.connect((String)properties.get(
"mail.smtp.host"
), username, password);
tsport.sendMessage(mimemsg, mimemsg.getRecipients(Message.RecipientType.TO));
tsport.close();
System.out.println(
"发送邮件成功!"
);
return
true
;
}
catch
(Exception e) {
System.out.println(
"发送邮件出错原因:"
+e);
return
false
;
}
}
public
void
sendMail(String fileAttach){
StringBuffer content =
new
StringBuffer();
content.append(
"<html>"
);
content.append(
"<head><META content='text/html; charset=gbk' http-equiv=Content-Type>"
);
content.append(
"<META name=GENERATOR content='MSHTML 8.00.6001.18702'>"
);
content.append(
"<style type='text/css'>"
);
content.append(
".STYLE1 {color: #000000}"
);
content.append(
"TABLE {FONT-SIZE: 12px; COLOR: #444444;LINE-HEIGHT: 14px; FONT-FAMILY: '宋体', 'Arial'; TEXT-DECORATION: none;}"
);
content.append(
".STYLE3 { font-size: 13px;color: #FD9800; font-weight: bold;}"
);
content.append(
"</style>"
);
content.append(
"</head>"
);
content.append(
"<body>"
);
content.append(
"<table width='749px' align='left'>"
);
content.append(
"<tr><td width='749' height='10px'></td></tr>"
);
content.append(
"<tr><td><p align='left'><font size=2>for test!</font></p></td></tr>"
);
content.append(
"</table>"
);
content.append(
"</body>"
);
content.append(
"</html>"
);
System.out.println(
"content********"
+content);
setSmtpAuth(
false
);
if
(setMailSub(MAIL_TITLE) ==
false
){
return
;
}
if
(setMailBody(content.toString()) ==
false
){
return
;
}
if
(setMailTo(toAddress) ==
false
){
return
;
}
if
(setMailFrom(fromAddress) ==
false
){
return
;
}
if
(addAttach(fileAttach) ==
false
){
return
;
}
if
(sendout()==
false
){
return
;
}
}
public
static
void
main(String[] args) {
EdmMail m =
new
EdmMail(
"test"
);
m.sendMail(
"D:\\workspace\\test.xls"
);
}
}
相关推荐
本教程将深入讲解如何使用Java实现邮件发送功能,并提供相关的源码和jar包。 1. **JavaMail API**: JavaMail API 是Java平台上用于处理电子邮件的主要库,它提供了一系列的接口和类,使得开发者能够方便地创建、...
本文将深入探讨如何使用JavaMail API在Java应用程序中实现发送邮件的功能,同时也会涉及验证码验证以及网页版邮件发送的实现。 首先,要发送邮件,我们需要引入JavaMail的相关库。通常,这包括`javax.mail`和`javax...
本篇文章将深入讲解如何使用Java实现发送邮件的功能。 首先,要使用Java Mail API,你需要在项目中引入相应的依赖。对于Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.sun.mail</groupId> ...
本篇文章将深入探讨如何使用Java编写程序来实现邮件的发送,包括发送纯文本邮件、带有附件的邮件、包含图片的邮件以及在邮件中显示图片。 首先,我们得知道JavaMail API是实现邮件发送功能的关键库。它提供了一系列...
简单 一个demo javamail 发送邮件。很容易学会。
Java发送邮件功能是Java开发中常见的一项任务,主要用于企业级应用中的通知、验证或客户服务等场景。JavaMail API是Java平台上的一个标准库,用于处理电子邮件。本篇将详细介绍如何利用JavaMail API来实现发送邮件的...
在这个主题下,我们将探讨三种Java实现邮件发送的方式,以及如何通过提供的代码和参考资料进行实践。 首先,让我们了解一下基本概念。邮件发送主要涉及到SMTP(Simple Mail Transfer Protocol)和POP3(Post Office...
在Java编程中,发送邮件是一项常见的任务,通常我们会利用JavaMail API来实现这一功能。本文主要探讨了在使用Java发送邮件时遇到的问题以及如何解决,特别是涉及到中国移动邮箱在Linux服务器上的配置。 首先,问题...
JavaMail是Java编程语言中用于处理电子邮件的API,它提供了丰富的功能,如发送邮件、接收邮件、处理附件...通过理解JavaMail API的工作原理,以及如何配置和使用它,你可以成功地在Java应用程序中实现发送邮件的功能。
Java发送邮件功能是Java开发中常见的一项任务,它允许开发者通过编程的方式实现电子邮件的发送,包括正文内容、附件以及抄送等高级功能。在Java中,我们主要利用JavaMail API来实现这一目标。 JavaMail API是一个...
本教程将深入探讨如何使用Java实现这一功能。Java提供了多种库来处理邮件发送,其中最常用的便是JavaMail API。 JavaMail API是Java平台上用于发送和接收电子邮件的标准API,它提供了丰富的接口和类来处理邮件协议...
本教程将详细讲解如何使用Java实现发送邮件,包括发送图片和附件。 首先,你需要在项目中引入Java Mail API的相关依赖。通常我们使用Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
在这个场景下,我们将深入探讨如何使用Java来实现这个功能,以及涉及的相关知识点。 首先,Java发送邮件主要依赖于JavaMail API,这是一个开源的Java库,它提供了标准的JavaMail API规范,允许开发者发送、接收和...
本文将基于提供的描述及部分代码片段,详细介绍如何利用Java实现邮件发送功能。本教程涉及的关键知识点包括:配置邮件服务器、设置发件人与收件人信息、处理邮件验证以及附件的添加。 #### 配置邮件服务器 在发送...
这个"java实现发送邮件jar文件"是JavaMail的一个实现,封装了SMTP(简单邮件传输协议)和其他相关协议,使得开发者能够轻松地集成邮件功能到他们的项目中。 在Java中实现邮件发送,首先需要引入JavaMail的相关依赖...
### Java实现发送邮件知识点详解 #### 一、引言 电子邮件是互联网中最为常见的通信方式之一,被广泛应用于用户激活、密码重置、营销推广等多个场景。为了满足自动化的需求,通常采用程序化的方式进行邮件的发送。...
java发送邮件工具类,用于java程序实现邮件的发送功能