javamail介绍
java发邮件方法
java发邮件方法Java是一种功能强大的编程语言,它提供了多种方法来实现发送邮件的功能。
本文将介绍两种常用的Java发邮件的方法,分别是使用JavaMail API和使用Spring Framework的JavaMail库。
JavaMail API是一个用于发送和接收电子邮件的标准API,它是Java平台的一部分。
使用JavaMail API,我们可以在Java程序中轻松地发送邮件。
下面是使用JavaMail API发送邮件的步骤:1. 添加依赖:首先,我们需要在我们的Java项目中添加JavaMail API的依赖。
可以通过Maven或Gradle等构建工具,将以下依赖添加到项目的构建文件中:```xml<dependency><groupId>javax.mail</groupId><artifactId>javax.mail-api</artifactId><version>1.6.2</version></dependency>```2. 创建会话对象:接下来,我们需要创建一个会话对象,用于与邮件服务器进行通信。
可以使用javax.mail.Session类的getInstance()方法来创建会话对象,该方法接受一个Properties对象作为参数,用于指定邮件服务器的配置信息,如SMTP 服务器的地址、端口号等。
```javaProperties properties = new Properties();properties.put("mail.smtp.host", "");properties.put("mail.smtp.port", "25");Session session = Session.getInstance(properties);```3. 创建邮件消息:然后,我们需要创建一个邮件消息对象,用于设置邮件的各种属性,如发件人、收件人、主题、内容等。
JavaMail API完全理解
JavaMail API完全理解JavaMail API是一种可选的、能用于读取、编写和发送电子消息的包(标准扩展)。
您可使用这种包创建邮件用户代理(Mail User Agent ,MUA)类型的程序,它类似于Eudora、Pine及Microsoft Outlook这些邮件程序。
其主要目的不是像发送邮件或其他邮件传输代理(Mail Transfer Agent,MTA)类型的程序那样用于传输、发送和转发消息。
换句话说,用户可以与MUA类型的程序交互,以阅读和撰写电子邮件。
MUA依靠MTA处理实际的发送任务。
JavaMail API的设计是,为收发信息提供与协议无关的访问。
方式是把该API划分成两个部分:·该API的第一个部分是本课程的重点。
基本上是如何发送和接收独立于提供程序/协议的消息。
·第二个部分则使用特定的协议语言,如:SMTP、POP、IMAP和NNTP。
如果要让JavaMail API与服务器通信,就需要为之提供协议。
由于Sun公司对特定协议提供程序有充分的介绍,用户可以免费获取,所以本课程没有介绍创建特定协议提供程序的内容。
复习相关协议在学习JavaMail API的深层知识之前,让我们回过头来看一看在该API中使用的协议,本质上有4种人们常用的协议:· SMTP· POP· IMAP· MIME您还需要了解NNTP及其他一些协议。
理解这些协议的基本原理有助于您理解如何使用JavaMail API。
而该API的设计要与协议无关,所以不能克服这些基础协议的限制。
如果选用的协议不支持某种功能,那么JavaMail API也无法在其上添加这种功能。
(正如您一会儿就会看到的,在操作POP协议时,常常会碰到这种问题)。
SMTP简单邮件传输协议(SMTP)是用于传送电子邮件的机制。
在JavaMail API环境中,您的基于JavaMail的程序将与您公司或Internet服务提供商(ISP)的SMTP服务器通信。
邮件客户端使用Java语言和JavaMail库开发的小程序
邮件客户端使用Java语言和JavaMail库开发的小程序邮件是现代社会中非常重要的通信工具之一,而邮件客户端则是使用邮件的主要方式之一。
为了提供一个便捷的邮件发送和接收工具,本文将介绍如何使用Java语言和JavaMail库开发一个小型的邮件客户端程序。
一、引言随着互联网的普及,电子邮件已经成为人们日常生活中不可或缺的一部分。
邮件客户端是用于发送和接收电子邮件的软件应用程序。
本文将通过使用Java语言和JavaMail库开发一个小型的邮件客户端程序,来演示如何利用编程语言的力量来简化邮件的处理和管理。
二、准备工作在开始开发之前,我们需要准备一些必要的工作。
首先,我们需要安装Java开发环境(JDK)以及支持邮件功能的JavaMail库。
其次,我们需要一个有效的邮件服务器地址、端口号、用户名和密码,这些信息用于程序连接和认证邮件服务器。
三、创建项目使用Java语言和JavaMail库开发邮件客户端的第一步是创建一个新的Java项目。
我们可以使用任何集成开发环境(IDE)来创建和管理项目,比如Eclipse、IntelliJ IDEA等。
创建项目后,我们需要在项目的依赖项中添加JavaMail库,以便在代码中使用该库提供的功能。
四、连接邮件服务器在程序中连接邮件服务器是发送和接收邮件的基础步骤。
我们可以使用JavaMail库中提供的JavaMailSession类来创建一个与邮件服务器的会话连接。
通过设置邮件服务器地址、端口号、用户名和密码,我们可以建立与邮件服务器的连接,并进行后续的邮件处理操作。
五、发送邮件发送邮件是邮件客户端的主要功能之一。
我们可以使用JavaMail库提供的SMTP协议来发送邮件。
首先,我们需要创建一个MimeMessage对象,用于表示要发送的邮件。
然后,我们可以设置邮件的发送人、接收人、主题、内容等信息。
最后,使用JavaMailSession类中的Transport对象发送邮件。
javamail API文档
原文:/resource/article/44/44101_JavaMail.html一、JavaMail API简介JavaMail API是读取、撰写、发送电子信息的可选包。
可用它来建立如Eudora、Foxmail、MS Outlook Express一般的邮件用户代理程序(Mail User Agent,简称MUA,而非邮件传输代理MTA)。
从另外一个角度来看,我们这些电子邮件用户日常用MUA程序来读写邮件,而MUA依赖着MTA处理邮件的递送。
二、相关协议一览不依赖于协议的方式发送接收电子信息,只依赖特定协议SMTP、POP、IMAP、MIME、NNTP协议。
1.SMTP(递送邮件机制)简单邮件传输协议SMTP服务器将邮件转发到接收者的SMTP服务器,直至最后被接收者通过POP或者IMAP协议获取。
2.POP(获取邮件机制)邮局协议,目前为第3个版本POP33.IMAP(多目录共享)接收信息的高级协议,目前版本为第4版IMAP4接收新信息,将这些信息递送给用户,维护每个用户的多个目录。
4.MIME邮件扩展内容格式:信息格式、附件格式等等5.NNTP第三方新闻组协议三、安装1.安装JavaMail从/products/javamail/downloads/index.html下载JavaMail mail.jar文件添加到CLASSPATH中2.安装JavaBeans Activation Framework从/products/javabeans/glasgow/jaf.html下载JavaBeans Activation Frameworkactivation.jar文件添加到CLASSPATH中四、初次认识JavaMail API1.了解我们的JavaMail环境A.纵览JavaMail核心类结构JavaMail.jar文件的一些核心类:Session、Message、Address、Authenticator、Transport、Store、Folder。
JavaMail组件简单介绍
JavaMail组件的简单介绍一、什么是JavaMailJavaMail是Sun发布的用来处理email的API。
它可以方便地执行一些常用的邮件传输。
虽然JavaMail是Sun的API之一,但它目前还没有被加在标准的java开发工具包中(Java Development Kit),这就意味着你在使用前必须另外下载JavaMail文件。
除此以外,你还需要有Sun的JavaBeans Activation Framework (JAF)。
JavaBeans Activation相关的包你可以到sun的官方网站上去下载二、如何使用JavaMail组件在使用JavaMail发送邮件之前,先来看一下在发送邮件过程中主要使用到的几个类以及它们的用处和用法!Session定义了一个基本的邮件会话,所有的基于JavaMail的程序都至少需要一个或全部的对话目标。
Session对象需要一个,Session的构造函数是私有的,你可以通过getDefaultInstance()方法来取得一个单一的可以被共享的默认的Session,如:Properties props=new Properties();……..Session session = Session.getDefaultInstance(props, null);或者,可以使用getInstance()方法来创建一个唯一的Session如:Properties props=new Properties();…….Session session=Session.getInstance(props,null);在多数情况下,整个应用中使用一个共享Session已经足够了;2、创建了Session 对象以后,那么下面就要创建Message对象来发送Session., Message是一个抽象类,再大部分应用中可以使用它的子类可以用如下的方法创建一个Message;Message newMessage = new MimeMessage(sendMailSession);一旦得到了Message,就可以设置它的各个部分。
Java实现发送邮件,图片,附件
Java实现发送邮件,图⽚,附件1、JavaMail 介绍JavaMail 是sun公司(现以被甲⾻⽂收购)为⽅便Java开发⼈员在应⽤程序中实现邮件发送和接收功能⽽提供的⼀套标准开发包,它⽀持⼀些常⽤的邮件协议,如前⾯所讲的SMTP,POP3,IMAP,还有MIME等。
我们在使⽤JavaMail API 编写邮件时,⽆须考虑邮件的底层实现细节,只要调⽤JavaMail 开发包中相应的API类就可以了。
JavaMail 下载地址:2、JavaMail APIJavaMail API 按照功能可以划分为如下三⼤类:①、创建和解析邮件的API②、发送邮件的API③、接收邮件的API以上三种类型的API在JavaMail 中由多个类组成,但是主要有四个核⼼类,我们在编写程序时,记住这四个核⼼类,就很容易编写出Java邮件处理程序。
Message 类:javax.mail.Message 类是创建和解析邮件的核⼼ API,这是⼀个抽象类,通常使⽤它的⼦类javax.mail.internet.MimeMessage 类。
它的实例对象表⽰⼀份电⼦邮件。
客户端程序发送邮件时,⾸先使⽤创建邮件的 JavaMail API 创建出封装了邮件数据的 Message 对象,然后把这个对象传递给邮件发送API(Transport 类)发送。
客户端程序接收邮件时,邮件接收API把接收到的邮件数据封装在Message 类的实例中,客户端程序在使⽤邮件解析API从这个对象中解析收到的邮件数据。
Transport 类:javax.mail.Transport 类是发送邮件的核⼼API 类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如 SMTP 协议,客户端程序创建好Message 对象后,只需要使⽤邮件发送API 得到 Transport 对象,然后把 Message 对象传递给 Transport 对象,并调⽤它的发送⽅法,就可以把邮件发送给指定的 SMTP 服务器。
JAVA实现邮件发送
JAVA实现邮件发送Java可以通过JavaMail库实现邮件发送。
JavaMail是一个开源API,提供了发送、接收和管理电子邮件的功能。
下面是一个简单的Java代码示例,实现了发送邮件的功能:```javaimport java.util.Properties;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;public class EmailSenderpublic static void main(String[] args)//邮件发送者信息String senderPassword = "your_password";//邮件接收者信息//邮件服务器配置//邮件内容String subject = "测试邮件";String body = "这是一个Java邮件发送示例。
";//设置邮件属性Properties props = new Properties(;props.put("mail.smtp.host", smtpHost);props.put("mail.smtp.auth", "true");props.put("mail.smtp.port", "465");props.put("mail.smtp.socketFactory.port", "465");//创建认证器Authenticator authenticator = new Authenticatoprotected PasswordAuthentication getPasswordAuthenticatio return new PasswordAuthentication(senderEmail, senderPassword);}};//创建会话Session session = Session.getDefaultInstance(props, authenticator);try//创建邮件消息MimeMessage message = new MimeMessage(session);message.setFrom(new InternetAddress(senderEmail));message.addRecipient(Message.RecipientType.TO, new InternetAddress(recipientEmail));message.setSubject(subject);message.setText(body);//发送邮件Transport.send(message);System.out.println("邮件发送成功!");} catch (MessagingException e)e.printStackTrace(;}}```以上是一个基本的邮件发送示例。
JavaMail概述
JavaMail概述J avaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。
它是Sun 公司发布的用来处理email的API,是一种可选的、用于读取、编写和发送电子消息的包(标准扩展)。
用户可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。
Java Mail是JavaEE平台提供的邮件API。
使用这套API,可以轻松实现邮件的创建,发送和接受。
1.什么是E-mailE-mail是用户间或应用程序间交换信息的Internet标准。
每个用户都有自己的网上邮箱,发送方把信息发送到自己的网上信箱,并声明信息的接收方;该信箱所在的“邮局”会把信息发送到接收方的“邮局”,接收方从接收方的“邮局”中自己的信箱获取信息。
这样就完成了信息从发送方到接收方的传递。
所以,要发送或者接收邮件首先应该有自己的邮箱。
E-mail消息可以包含普通文本,也可以包含更为复杂的多媒体数据类型和图像声音等。
这样,用户就可以交换各种各样的信息。
每个E-mail消息的头信息中都包含消息的发出者、发送的目的地和其他相关信息。
2 E-mail体系结构要完成消息的交互,需要几方面的支持:邮件发送客户端程序、邮件接收客户端程序、邮件发送服务器和邮件接收服务器,此外,还需要相关的通信协议。
邮件发送客户端程序和邮件接收客户端程序可以是相同的,例如经常使用的微软的Outlook既可以发送邮件,也可以接收邮件。
邮件发送服务器和邮件接收服务器也可以是相同的服务器。
在与邮件服务器交互的过程中,主要完成两个动作,把邮件发送到邮件服务器,以及从邮件服务器读取邮件。
邮件发送方通过邮件发送客户端把邮件发送到发送方的邮件服务器,在发送的过程中需要用到SMTP协议。
发送方的邮件服务器把邮件发送到接收方的邮件服务器,使用的协议也是SMTP。
邮件接收方从接收方邮件服务器接收邮件,使用POP3协议或者IMAP协议。
3 E-mail相关的协议简单邮件传输协议(SMTP)在邮件发送方把邮件发送到发送方邮件服务器的时候,需要用到简单邮件传输协议(Simple Mail Transport Protocol,简称SMTP),发送方邮件服务器把邮件发送到接收方邮件服务器的时候,也要用到SMTP。
通过代码实例跟我学JavaMail技术及应用实例(第1部分)
1.1通过代码实例跟我学JavaMail技术及应用实例(第1部分)1、使用JSP开发WebMail系统(1)WebMail概述电子邮件(E-mail)是Internet上使用最广泛的服务之一,传统的Email应用模式基于C/S结构,即用户使用客户端的邮件收发工具(如Outlook、Foxmail等)与提供邮件服务的服务器(如、、)通信,在使用客户端邮件工具之前,用户要进行一些必要的设置,如指定邮件服务器的主机地址和通信端口等,这些工作对刚开始上网的用户会有一定的困难。
如果把E-mail和Web结合在一起,即通过Web编程和适当的系统设置,使用户仅仅以访问Web的方式就可以得到和使用完整的邮件服务,这样将极大地方便上网用户,这种系统称为WebMail。
WebMail是目前Internet上最受欢迎的服务之一,也是很多网站必备功能之一。
另外WebMail同样也适用于企业或校园网的应用。
(2)实现WebMail的主要功能该系统提供了获取、阅读、书写、转发、回复、打印、删除及用户管理的功能。
考虑到系统的跨平台性,采用Java及相关技术产品为开发工具,特别是采用JSP作为服务程序,这样对客户端也没有其它要求,同时系统的性能在高负荷下得到进一步提高。
整个WebMail系统全部采用纯Java代码,服务器端每响应一个服务请求启动一个线程,而不像CGI那样启动一个进程。
这样能够节省系统资源,提高系统性能。
2、什么是JavaMail(1)Web方式的邮件电子邮件(E-mail)是Internet上使用最广泛的服务之一,传统的Email应用模式基于C/S结构,即用户使用客户端的邮件收发工具(如Outlook、Foxmail等)与提供邮件服务的服务器(如、、)通信,在使用客户端邮件工具之前,用户要进行一些必要的设置,如指定邮件服务器的主机地址和通信端口等,这些工作对刚开始上网的用户会有一定的困难,如果把E-mail和Web结合在一起,即通过Web编程和适当的系统设置,使用户仅仅以访问Web的方式就可以得到和使用完整的邮件服务,这样将极大地方便上网用户,这种系统称为WebMail。
Java邮件发送功能实现详解:SMTP协议与JavaMail API
Java邮件发送功能实现详解:SMTP协议与JavaMail API简介在现代社会中,电子邮件已经成为人们日常沟通的重要方式之一。
而在Java编程领域,实现邮件发送功能同样是一项重要的任务。
通过SMTP协议和JavaMail API,我们可以很方便地在Java程序中实现邮件发送功能。
本文将详细介绍如何使用SMTP协议和JavaMail API在Java程序中实现邮件发送功能。
SMTP协议SMTP(Simple Mail Transfer Protocol)是用于邮件传输的协议,它定义了邮件是如何从发件人传送到收件人的过程。
在使用Java实现邮件发送功能时,我们需要理解SMTP协议的工作原理,并按照协议规范来构建和发送邮件。
SMTP协议的工作流程通常包括以下步骤:1. 发件人向SMTP服务器发送邮件;2. SMTP服务器根据收件人的域名查找目标邮件服务器;3. SMTP服务器将邮件传递给目标邮件服务器; 4. 目标邮件服务器将邮件存储在收件人的邮箱中。
JavaMail APIJavaMail API是一组用于处理电子邮件的Java类库,它提供了发送、接收和处理邮件的功能。
通过JavaMail API,我们可以方便地在Java程序中实现各种邮件相关操作,包括发送邮件、接收邮件、附件处理等。
在使用JavaMail API发送邮件时,一般需要按照以下步骤进行: 1. 创建一个邮件会话(Session)对象; 2. 创建一个邮件(Message)对象,并设置发件人、收件人、主题、内容等信息; 3. 创建一个邮件传输(Transport)对象,并连接到SMTP服务器; 4. 发送邮件并关闭连接。
实现Java邮件发送功能下面将以一个简单的示例来演示如何在Java程序中实现邮件发送功能。
假设我们要发送一封包含文本内容的简单邮件。
```java import java.util.Properties; import javax.mail.; import javax.mail.internet.;public class SendEmail { public static void main(String[] args) { final String username =。
java mail 深入浅出
JavaMailAPI可以到 /products/javamail/index.html 进行下载,并将mail.jar添加到classpath即可.
JAF框架可以到 /products/javabeans/glasgow/jaf.html 进行下载,并将activation.jar添加到classpath即可.
Address地址类,和Message一样也是一个抽象类,一旦创建了Session和Message并将内容填入消息后,就可以用Address确定信件的地址了,用javax.mail.internet.
InternetAddress类.若创建的地址只包含电子邮件地址,只要传递电子邮件地址给构造器就可以了.例如:Address address = new InternetAddress( “ it5719@ ” );
2,将您的SMTP服务器名添加到mail.smtp.host关键字的属性中.
Props.pout( “ mail.smtp.host ” ,host);
3,获取基于Properties Session对象.
Session session = Session.getDefaultInstance(props,null);
Store和folder用session获取消息,与发送消息开始很相似,但是在session得到后,很可能实用用户名和密码或实用Authenticator连接到一个Store.类似于Transport,也是一样要告诉store用什么协议.例如
Store store = session.getStore( “ pop3 ” );
4,从Session创建一个MimeMessage.
MimeMessage message = new MimeMessage(session);
java mail详解
java mail详解JavaMail是Java平台上用于发送、接收和管理电子邮件的API。
它提供了一种方便的方式来处理电子邮件,包括发送和接收电子邮件,以及访问和操作邮件服务器。
首先,让我们来看看JavaMail API的一些主要功能和用法。
JavaMail API包括javax.mail包,它提供了发送和接收电子邮件的类和接口。
要发送电子邮件,你需要使用javax.mail.Session类来创建一个会话对象,然后使用javax.mail.internet.MimeMessage类来创建邮件消息。
你可以设置邮件的主题、内容、附件等信息,并使用javax.mail.Transport类的send方法来发送邮件。
另外,JavaMail API也支持接收邮件。
你可以使用javax.mail.Store类来连接到邮件服务器,并使用javax.mail.Folder类来访问邮件文件夹。
通过这些类,你可以检索邮件、读取邮件内容以及执行其他邮件管理操作。
JavaMail API还支持与邮件服务器的安全通信,包括SSL和TLS协议。
你可以使用javax.mail.Session类的属性来配置安全连接参数,以确保与邮件服务器的通信是安全的。
除了基本的发送和接收邮件功能,JavaMail API还提供了一些高级功能,比如处理邮件附件、设置邮件优先级、回复和转发邮件等。
你可以使用javax.mail.internet.MimeBodyPart类来处理邮件附件,使用javax.mail.Flags类来设置邮件标记,以及使用javax.mail.internet.InternetAddress类来表示邮件地址等。
总之,JavaMail API提供了丰富的功能和灵活的接口,使得在Java应用程序中处理电子邮件变得非常方便。
无论是发送简单的文本邮件,还是处理复杂的邮件操作,JavaMail API都能满足你的需求。
希望这些信息能帮助你更好地理解和使用JavaMail API。
邮件原理与JAVAMAIL3
使用JavaMail API收发邮件31.JavaMail API按其功能划分通常可分为如下三大类(1)创建和解析邮件内容的API:Message类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件。
(2)发送邮件的API:Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议。
(3)接收邮件的API:Store类是接收邮件的核心API类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3协议。
2.Session类Session类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。
Session对象根据这些信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象时提供信息支持。
3.使用JavaMail发送一封简单的邮件创建包含邮件服务器的网络连接信息的Session对象。
创建代表邮件内容的Message对象。
创建Transport对象、连接服务器、发送Message、关闭连接。
4.实例(1)JavaMail邮件只发送内容public class SendMail{public static void main(String[]args)throws Exception{//属性文件Properties props=new Properties();//设置邮件的发送主机名、发送协议和是否验证props.setProperty("mail.host","");props.setProperty("mail.transport.protocol","smtp");props.setProperty("mail.smtp.auth","true");//获取发送接收邮件环境的对象Session session=Session.getInstance(props);Message message=createMessage(session);//创建发送邮件的对象Transport tsp=session.getTransport();tsp.connect("csdn","csdn");tsp.sendMessage(message,message.getAllRecipients());tsp.close();}public static Message createMessage(Session session)throws Exception{ //根据环境对象创建一份邮件MimeMessage message=new MimeMessage(session);//设置邮件属性message.setFrom(new InternetAddress("csdn@"));message.setRecipient(Message.RecipientType.TO,newInternetAddress("csdn@"));message.setSubject("hello");//创建邮件体MimeBodyPart text=new MimeBodyPart();text.setContent("你好?","text/html;charset=utf-8");//设置描述关系MimeMultipart mm=new MimeMultipart();mm.addBodyPart(text);message.setContent(mm);message.saveChanges();return message;}}(2)JavaMail邮件发送内容和图片public class SendImageMail{public static void main(String[]args)throws Exception{//属性文件Properties props=new Properties();//设置邮件的发送主机名、发送协议和是否验证props.setProperty("mail.host","");props.setProperty("mail.transport.protocol","smtp");props.setProperty("mail.smtp.auth","true");//获取发送接收邮件环境的对象Session session=Session.getInstance(props);Message message=createMessage(session);//创建发送邮件的对象Transport tsp=session.getTransport();tsp.connect("csdn","csdn");tsp.sendMessage(message,message.getAllRecipients());tsp.close();}public static Message createMessage(Session session)throws Exception{ MimeMessage message=new MimeMessage(session);message.setFrom(new InternetAddress("csdn@"));message.setRecipient(Message.RecipientType.TO,newInternetAddress("csdn@"));message.setSubject("图片");MimeBodyPart text=new MimeBodyPart();text.setContent("好看吗?<br/><imgsrc='cid:xx.jpg'>","text/html;charset=utf-8");MimeBodyPart image=new MimeBodyPart();image.setDataHandler(new DataHandler(newFileDataSource("src\\f.jpg")));image.setContentID("xx.jpg");MimeMultipart mm=new MimeMultipart();mm.addBodyPart(text);mm.addBodyPart(image);mm.setSubType("related");message.setContent(mm);message.saveChanges();return message;}}(3)JavaMail邮件发送内容、图片和附件public class SendAttchImageMail{public static void main(String[]args)throws Exception{//属性文件Properties props=new Properties();//设置邮件的发送主机名、发送协议和是否验证props.setProperty("mail.host","");props.setProperty("mail.transport.protocol","smtp");props.setProperty("mail.smtp.auth","true");//获取发送接收邮件环境的对象Session session=Session.getInstance(props);Message message=createMessage(session);//创建发送邮件的对象Transport tsp=session.getTransport();tsp.connect("csdn","csdn");tsp.sendMessage(message,message.getAllRecipients());tsp.close();}public static Message createMessage(Session session)throws Exception{ MimeMessage message=new MimeMessage(session);message.setFrom(new InternetAddress("csdn@"));message.setRecipient(Message.RecipientType.TO,newInternetAddress("csdn@"));message.setSubject("图片");MimeBodyPart text=new MimeBodyPart();text.setContent("好看吗?<br/><imgsrc='cid:xx.jpg'>","text/html;charset=utf-8");MimeBodyPart image=new MimeBodyPart();image.setDataHandler(new DataHandler(newFileDataSource("src\\f.jpg")));image.setContentID("xx.jpg");MimeBodyPart attch=new MimeBodyPart();DataHandler dh=new DataHandler(new FileDataSource("src\\默默无语.mp3"));attch.setDataHandler(dh);String name=dh.getName();attch.setFileName(MimeUtility.encodeText(name));MimeMultipart mm=new MimeMultipart();mm.addBodyPart(text);mm.addBodyPart(image);mm.setSubType("related");MimeBodyPart part=new MimeBodyPart();part.setContent(mm);MimeMultipart m=new MimeMultipart();m.addBodyPart(part);m.addBodyPart(attch);m.setSubType("mixed");message.setContent(m);message.saveChanges();return message;}}注:邮箱地址必须是真实的。
java中javamail收发邮件实现方法
java中javamail收发邮件实现⽅法概述1、邮件相关的标准⼚商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括:SMTP(Simple Mail Transfer Protocol) :即简单邮件传输协议,它是⼀组⽤于由源地址到⽬的地址传送邮件的规则,由它来控制信件的中转⽅式。
POP3(Post Office Protocol – Version 3) :即邮局协议版本 3 ,⽤于接收电⼦邮件的标准协议。
IMAP(Internet Mail Access Protocol) :即 Internet 邮件访问协议。
是 POP3 的替代协议。
这三种协议都有对应 SSL 加密传输的协议,分别是 SMTPS , POP3S 和 IMAPS 。
MIME(Multipurpose Internet Mail Extensions) :即多⽤途因特⽹邮件扩展标准。
它不是邮件传输协议。
但对传输内容的消息、附件及其它的内容定义了格式。
2、JavaMail 简介JavaMail 是由 Sun 发布的⽤来处理 email 的 API 。
它并没有包含在 Java SE 中,⽽是作为 Java EE 的⼀部分。
mail.jar :此 JAR ⽂件包含 JavaMail API 和 Sun 提供的 SMTP 、 IMAP 和 POP3 服务提供程序;activation.jar :此 JAR ⽂件包含 JAF API 和 Sun 的实现。
JavaMail 包中⽤于处理电⼦邮件的核⼼类是: Properties 、 Session 、 Message 、 Address 、 Authenticator 、 Transport 、 Store 等。
3、邮件传输过程如上图,电⼦邮件的处理步骤如下:创建⼀个 Session 对象。
Session 对象创建⼀个 Transport 对象 /Store 对象,⽤来发送 / 保存邮件。
JAVA邮件服务API详解
JavaMail(JAVA邮件服务) API详解一、JavaMail API简介JavaMail API是读取、撰写、发送电子信息的可选包。
我们可用它来建立如Eudora、Foxmail、MS Outlook Express一般的邮件用户代理程序(Mail User Agent,简称MUA)。
而不是像sendmail或者其它的邮件传输代理(Mail Transfer Agent,简称MTA)程序那样可以传送、递送、转发邮件。
从另外一个角度来看,我们这些电子邮件用户日常用MUA程序来读写邮件,而MUA依赖着MTA处理邮件的递送。
在清楚了到MUA与MTA之间的关系后,让我们看看JavaMail API是如何提供信息访问功能的吧!JavaMail API被设计用于以不依赖协议的方式去发送和接收电子信息,这个API被分为两大部分:基本功能:如何以不依赖于协议的方式发送接收电子信息,这也是本文所要描述的,不过在下文中,大家将看到这只是一厢情愿而已。
第二个部分则是依赖特定协议的,比如SMTP、POP、IMAP、NNTP协议。
在这部分的JavaMail API是为了和服务器通讯,并不在本文的内容中。
二、相关协议一览在我们步入JavaMail API之前,先看一下API所涉及的协议。
以下便是大家日常所知、所乐于使用的4大信息传输协议:SMTPPOPIMAPMIME当然,上面的4个协议,并不是全部,还有NNTP和其它一些协议可用于传输信息,但是由于不常用到,所以本文便不提及了。
理解这4个基本的协议有助于我们更好的使用JavaMail API。
然而JavaMail API是被设计为与协议无关的,目前我们并不能克服这些协议的束缚。
确切的说,如果我们使用的功能并不被我们选择的协议支持,那么JavaMail API并不可能如魔术师一样神奇的赋予我们这种能力。
1.SMTP简单邮件传输协议定义了递送邮件的机制。
在下文中,我们将使用基于Java-Mail的程序与公司或者ISP的SMTP服务器进行通讯。
javaMail发送邮件(图片,附件)
Java类库中是带有javamail的!所有不需要再下载。
1)运行例子时会出现:Exception in thread "main" ng.NoClassDefFoundError: com/sun/mail/util/LineOutputStream这样的错误,原因是版本不兼容,后来我没有用java ee 5.0而是用j2ee1.4.自己导入mail.jar包就没有出现错误。
2)运行完书本的例子(文本,包含有图片,附件。
另外图片是分为两种,一是引用外部资源,二是嵌入内部)。
对其有个大概的了解。
下面给个完整的例子,包含有图片和附件的。
public class ComplexMessage {/***@param args*@throws MessagingException*@throws AddressException*@throws IOException*@throws FileNotFoundException*/public static void main(String[] args) throws AddressException,MessagingException, FileNotFoundException, IOException{// TODO Auto-generated method stubSession session = Session.getDefaultInstance(new Properties()); // 设置发送邮件的客户端服务器端环境MimeMessage message=createMessage( session);message.writeTo(new FileOutputStream("d:\\test3.eml"));}public static MimeMessage createMessage(Session session) throws AddressException, MessagingException{String from = "4054702459047@";String to = "4074505429047@";String subject = "test";String data = "<FONT face=宋体color=#0909f7 size=7><SPAN style='ACKGROUND-COLOR: #6911ee'><SPAN style='BACKGROUND-COLOR: #000000'><SPAN style='BACKGROUND-COLOR: #000000'><SPAN style='BACKGROUND-COLOR: #ffffff'><EM>华南理工大学</EM> </SPAN></SPAN></SPAN></SPAN></FONT>"+"<img src='cid:test1.jpg'>";Message message = new MimeMessage(session);// 创建MimeMessage实例对象message.setFrom(new InternetAddress(from));message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));message.setSentDate(new Date());message.setSubject(subject);MimeBodyPart contentPart=createContent(data,"d:\\test.jpg");MimeBodyPart attachPart1=createAttachment("d:\\xml.xml");MimeBodyPart attachPart2=createAttachment("d:\\report13.jasper");MimeMultipart multipart=new MimeMultipart("mixed");multipart.addBodyPart(contentPart);multipart.addBodyPart(attachPart1);multipart.addBodyPart(attachPart2);//这里MimeMessage是由MIME对象的消息头和MimeMultipart组成,而MimeMultipart可由//MimeBodyPart 组成。
JavaEE5学习笔记04-JavaMail使用总结
JavaEE5学习笔记04-JavaMail使用总结刘岩Email:suhuanzheng7784877@1.JavaMail简介其实利用JavaMail API发送邮件本身没什么,在Java Web系统中也可以将自的Foxmail。
因为它确实为您屏蔽了底层的通讯协议、发送细节等等。
2.常用接口JavaMail常用的接口有如下几个1.javax.mail.Session:代表一次邮件会话。
2.javax.mail.Transport3.此类用于邮件的读取、写、监视、查找等等操作如下操作4.javax.mail.Folder用于组织邮件,代表邮件系统的一个文件夹。
5.javax.mail.MimeMessage实际的邮件对象它下属性bte[] content:邮件内容的字节数组InternetHeaders header:邮件的文件头对象它还有如下方法Void addFrom():设置发件人Void addHeader():设置邮件头信息Void addRecipients():增加收件地址Address[] getFrom():返回邮件发件人地址列表Void setContent():设置Email的内容6.javax.mail.Address制定人发件人、收件人地址,它也是一个抽象类,他有一个InternetAddress 子类。
7.javax.mail.Multipart用于保存电子邮件的内容的容器,它定义了添加、删除、获得电子邮件内容的方法。
他也是抽象类,有一个子类叫做MimeMultipart。
8.javax.mail.BodyPart以上代码示例出现了MimeBodyPart,他是BodyPart的子类,代表邮件内容的一部分,既可以代表邮件正文、也可以代表邮件的附件。
上面是描绘了一个普通的字符串。
9.javax.activation.DataHandler10.javax.activation.FileDataSource一般是附件文件对象,可以用于给邮件增加附件。
第29章 JavaMail
工程量清单计量规则-铁路工程标准施工招标文件2023年版1. 引言本文档旨在规范和指导铁路工程标准施工招标文件中的工程量清单计量规则。
通过遵循这些规则,可以确保招标过程的公平性和准确性。
2. 计量原则2.1 适用范围本计量规则适用于所有铁路工程标准施工招标文件中的工程量清单计量。
2.2 计量单位工程量清单中通常使用国际通用的计量单位,如米、立方米、吨等,以确保计量结果的一致性和可比性。
2.3 计量精度计量结果应具有足够的精确性和可靠性,以确保合同履行的准确性和公正性。
为此,计量应符合国家和行业相关的计量标准和规定。
3. 计量方法3.1 直接计量在工程量清单中明确列出的项目,可以直接使用实际的计量单位进行计量,例如长度、面积、容积等。
3.2 组合计量对于某些项目,可能需要通过组合计量方式进行计量。
在这种情况下,应根据工程实际情况和技术要求,确定合适的计量方法。
3.3 临时计量在工程施工过程中,可能会遇到一些临时情况,需要进行临时计量。
这些计量结果应经过合同双方的确认,在后续调整合同付款等方面起到依据作用。
4. 计量记录4.1 计量依据计量过程中应准确记录计量依据,包括清单编号、名称、计量单位等信息,以确保计量结果的准确性和可审查性。
4.2 计量记录表为了方便计量数据的管理和跟踪,可以建立计量记录表,记录每个计量项目的具体计量结果、计量时间等信息。
5. 监理与验收5.1 监理在工程施工过程中,应有专门的监理人员对计量过程进行监督和审查,以确保计量结果的准确性和合规性。
5.2 验收完成计量后,相关方应对计量结果进行验收,确保计量结果符合合同约定和技术要求。
6. 结论通过遵循本文档所述的工程量清单计量规则,可以在铁路工程标准施工招标文件中确立准确和公正的计量方法和过程,提高招标过程的透明度和可信度。
以上是《工程量清单计量规则-铁路工程标准施工招标文件2023年版》的概要内容,请在具体使用时参考相关标准和规定进行进一步操作。
2013-3-20jmail服务器简介
JavaMail详细介绍33.1 JavaMail简介JavaMail,顾名思义,提供给开发者处理电子相关的编程接口。
它是Sun发布的用来处理email的API。
它可以方便地执行一些常用的传输。
我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。
虽然JavaMail是Sun的API之一,但它目前还没有被加在标准的java开发工具包中(Java Development Kit),这就意味着你在使用前必须另外下载JavaMail文件。
除此以外,你还需要有Sun的JavaBeans Activation Framework (JAF)。
JavaBeans Activation Framework的运行很复杂,在这里简单的说就是JavaMail的运行必须得依赖于它的支持。
在Windows 2000下使用需要指定这些文件的路径,在其它的操作系统上也类似。
JavaMail是可选包,因此如果需要使用的话你需要首先从java.sun.下载。
目前最新版本是JavaMail1.4,使用JavaMail的时候需要Javabean Activation Framework的支持,因此你也需要下载JAF。
安装JavaMail只是需要把他们加入到CLASSPATH中去,如果你不想修改CLASSPATH的话,可以直接把他们的jar包直接copy到JAVA_HOME/lib/ext 下。
这样JavaMail就安装好了。
JavaMail包中用于处理电子的核心类是:Session,Message,Address,Authenticator,Transport,Store,Folder等。
Session定义了一个基本的会话,它需要从Properties中读取类似于服务器,用户名和密码等信息。
33.2 收发协议POP3(Post Office Protocol 3)即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的服务器和下载电子的电子协议。
通过JNDI使用JavaMail
JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。
它是Sun发布的用来处理email的API。
很多J2EE容器中,都将该实现加入到了容器的实现中。
也就是说,在多数的J2EE 容器中,可以通过JNDI方式获取到容器提供的JavaMail的服务。
JavaMail包中用于处理电子邮件的核心类是:Session,Message,Address,Authenticator,Transport,Store,Folder等。
Java Mail API有哪些核心类●Javax.mail.Session:Session 类定义了一个基本邮件会话(session),是Java Mail API最高层入口类。
所有其它类都是经由这个session 才得以生效。
Session 对象用Java.util.Properties 对象获取信息,如邮件服务器、用户名、密码及整个应用程序中共享的其它信息。
●Javax.mail.Message:一旦获得Session 对象,就可以继续创建要发送的消息。
这由Message类来完成。
因为Message 是个抽象类,必需用一个子类,多数情况下为Javax.mail.internet.MimeMessage。
MimeMessage 是个能理解MIME 类型和头的电子邮件消息,正如不同RFC 中所定义的。
虽然在某些头部域非ASCII 字符也能被译码,但Message 头只能被限制为用US-ASCII 字符。
●Javax.mail.Address:一旦您创建了Session 和Message,并将内容填入消息后,就可以用Address 确定信件地址了。
和Message 一样,Address 也是个抽象类。
您用的是Javax.mail.internet.InternetAddress 类。
●Javax.mail. Authenticator:与 类一样,JavaMail API 也可以利用Authenticator 通过用户名和密码访问受保护的资源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JavaMailJavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。
它是Sun发布的用来处理email的API。
它可以方便地执行一些常用的邮件传输。
我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。
虽然JavaMail是Sun的API之一,但它目前还没有被加在标准的java开发工具包中(Java Development Kit),这就意味着你在使用前必须另外下载JavaMail文件。
除此以外,你还需要有Sun的JavaBeans Activation Framework (JAF)。
JavaBeans Activation Framework 的运行很复杂,在这里简单的说就是JavaMail的运行必须得依赖于它的支持。
在Windows 2000下使用需要指定这些文件的路径,在其它的操作系统上也类似。
JavaMail是可选包,因此如果需要使用的话你需要首先从下载。
目前最新版本是JavaMail1.4,使用JavaMail的时候需要Javabean Activation Framework的支持,因此你也需要下载JAF。
安装JavaMail只是需要把他们加入到CLASSPATH中去,如果你不想修改CLASSPA TH的话,可以直接把他们的jar包直接copy到JA V A_HOME/lib/ext下。
这样JavaMail就安装好了。
JavaMail包中用于处理电子邮件的核心类是:Session,Message,Address,Authenticator,Transport,Store,Folder等。
Session定义了一个基本的邮件会话,它需要从Properties中读取类似于邮件服务器,用户名和密码等信息。
实例:package fss.base;/*** @author kangkang* * 2005.4.14*/import java.util.*;import javax.mail.*;import javax.mail.internet.*;import java.util.Date;import javax.activation.*;import java.io.*;public class Mail{// 21-30行把本程序所用变量进行定义。
具体在main中对它们赋植。
private MimeMessage mimeMsg; // MIME邮件对象private Session session; // 邮件会话对象private Properties props; // 系统属性private boolean needAuth = false; // smtp是否需要认证private String username = ""; // smtp认证用户名和密码private String password = "";private Multipart mp; // Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成//MimeMessage对象public Mail(String smtp){setSmtpHost(smtp);createMimeMessage();}/****** @param hostName* String****/public void setSmtpHost(String hostName){System.out.println("设置系统属性:mail.smtp.host = " + hostName); if (props == null)props = System.getProperties(); // 获得系统属性对象props.put("mail.smtp.host", hostName); // 设置SMTP主机}/****** @return boolean****/public boolean createMimeMessage(){try {System.out.println("准备获取邮件会话对象!");session = Session.getDefaultInstance(props, null); // 获得邮件会话对象}catch (Exception e){System.err.println("获取邮件会话对象时发生错误!" + e);return false;}System.out.println("准备创建MIME邮件对象!");try {mimeMsg = new MimeMessage(session); // 创建MIME邮件对象mp = new MimeMultipart(); // mp 一个multipart对象// Multipart is a container that holds multiple body parts.return true;}catch (Exception e){System.err.println("创建MIME邮件对象失败!" + e);return false;}}/****** @param need* boolean****/public void setNeedAuth(boolean need) {System.out.println("设置smtp身份认证:mail.smtp.auth = " + need); if (props == null)props = System.getProperties();if (need) {props.put("mail.smtp.auth", "true");} else {props.put("mail.smtp.auth", "false");}}/****** @param name* String**** @param pass* String***public void setNamePass(String name, String pass) {System.out.println("程序得到用户名与密码"); username = name;password = pass;}/****** @param mailSubject* String**** @return boolean****/public boolean setSubject(String mailSubject) { System.out.println("设置邮件主题!");try {mimeMsg.setSubject(mailSubject);return true;}catch (Exception e) {System.err.println("设置邮件主题发生错误!"); return false;}}/****** @param mailBody* String****/public boolean setBody(String mailBody){{System.out.println("设置邮件体格式");BodyPart bp = new MimeBodyPart();bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=gb2312>" + mailBody, "text/html;charset=GB2312");mp.addBodyPart(bp);return true;}catch (Exception e){System.err.println("设置邮件正文时发生错误!" + e);return false;}}/****** @param name* String**** @param pass* String****/public boolean addFileAffix(String filename) {System.out.println("增加邮件附件:" + filename);try {BodyPart bp = new MimeBodyPart();FileDataSource fileds = new FileDataSource(filename);bp.setDataHandler(new DataHandler(fileds));bp.setFileName(fileds.getName());mp.addBodyPart(bp);return true;}catch (Exception e) {System.err.println("增加邮件附件:" + filename + "发生错误!" + e); return false;}/****** @param name* String**** @param pass* String****/public boolean setFrom(String from) {System.out.println("设置发信人!");try {mimeMsg.setFrom(new InternetAddress(from)); // 设置发信人return true;}catch (Exception e){return false;}}/****** @param name* String**** @param pass* String****/public boolean setTo(String to)System.out.println("设置收信人");if (to == null)return false;try{mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress .parse(to));return true;}catch (Exception e){return false;}}/****** @param name* String**** @param pass* String****/public boolean setCopyTo(String copyto){System.out.println("发送附件到");if (copyto == null)return false;try {mimeMsg.setRecipients(,(Address[]) InternetAddress.parse(copyto));return true;}catch (Exception e){return false;}/****** @param name* String**** @param pass* String****/public boolean sendout(){try{mimeMsg.setContent(mp);mimeMsg.saveChanges();System.out.println("正在发送邮件....");Session mailSession = Session.getInstance(props, null); Transport transport = mailSession.getTransport("smtp"); // ???transport.connect((String) props.get("mail.smtp.host"), username, password);transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO));// transport.send(mimeMsg);System.out.println("发送邮件成功!");transport.close();return true;}catch (Exception e){System.err.println("邮件发送失败!" + e);return false;}}/****** Just do it as this****/public static void main(String[] args){String mailbody = " 用户邮件注册测试<font color=red>欢迎光临</font> <a href=\"\">啦ABC</a>";Mail themail = new Mail("");themail.setNeedAuth(true);if (themail.setSubject("邮件测试") == false)return;//邮件内容支持html 如<font color=red>欢迎光临</font> <a href=\"\">啦ABC</a>if (themail.setBody(mailbody) == false)return;//收件人邮箱if (themail.setTo("shengshuai@") == false)return;//发件人邮箱if (themail.setFrom("shengshuai@") == false)return;//设置附件//if (themail.addFileAffix("#######") == false)//return; // 附件在本地机子上的绝对路径themail.setNamePass("用户名", "密码"); // 用户名与密码if (themail.sendout() == false)return;}}。