package util;
import java.io.InputStream;
//抽象类表示字节输入流的所有类的超类。需要定义 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;
public class EdmMail {
private static String MAIL_TITLE="测试……";
private String mailServerHost="smtp.qq.com";
private String fromAddress1="309952828@qq.com";//发送人
private String toAddress="313959688@qq.com";//收件人
private MimeMessage mimemsg;//邮件对象
private Session session;//会话对象
private Properties properties;//系统属性
private Multipart part;//Multipart对象:邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象
private String username="XXXXXXXXXXXX@qq.com";//smtp用户名
private String password="XXXXXXXXXXXX";//smtp密码
private String profile="serach.properties";
private String fromAddress="309952828@qq.com";
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(mailServerHost);
fromAddress=proties.getProperty(fromAddress1);
username=proties.getProperty(username);
password=proties.getProperty(password);
toAddress=proties.getProperty(toAddress);
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 false;
}catch(Exception e){
System.out.println("创建对象出错,原因:"+e);
return false;
}
}
//smtp身份验证
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 mainBody)
{
BodyPart bdyPart=new MimeBodyPart();
try{
bdyPart.setContent(mainBody,"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.getProperty("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-DECORATTOM: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();
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("E:\\张冰\\闲杂\\pic273.jpg");
}
}
分享到:
相关推荐
本教程将深入讲解如何使用Java实现邮件发送功能,并提供相关的源码和jar包。 1. **JavaMail API**: JavaMail API 是Java平台上用于处理电子邮件的主要库,它提供了一系列的接口和类,使得开发者能够方便地创建、...
本文将详细讲解如何使用Java实现发送邮件的功能,并基于给出的描述和标签,我们将深入探讨相关的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程序实现邮件的发送功能