java邮件开发 - CSDN
精华内容
参与话题
  • 如果我们不依赖Java邮件API,而是使用原生模拟SMTP和POP3指令去收发邮件的话, 我们可以选择的技术就是Socket网络编程,连接上远程的邮件服务器,然后按照邮件协议与 邮件服务器进行交互,这里要涉及到很多细节...
    1.前言
    我们之前通过使用命令行手工敲SMTP和POP3的指令,进行了邮件收发。
    我们接下来使用Java来实现邮件的收发。

    如果我们不依赖Java的邮件API,而是使用原生模拟SMTP和POP3指令去收发邮件的话,
    我们可以选择的技术就是Socket网络编程,连接上远程的邮件服务器,然后按照邮件协议与
    邮件服务器进行交互,这里要涉及到很多细节问题,而且,想要自己编程实现复杂的MIME
    格式的邮件,是一件非常困难和麻烦的事。

    所以,Sun公司提供了一个专门用来收发邮件的API。即是“JavaMail”。

    2.JavaMail介绍
    JavaMail是Sun公司为方便Java开发人员在应用程序中实现邮件发送和接受功能的一套
    标准开发包,它支持一些常用的邮件协议,如SMTP、POP3、IMAP。

    开发人员使用JavaMail API编写邮件处理软件时,无需考虑邮件协议的底层实施细节,只要
    调用JavaMail开发包中相应的API类就可以了。

    JavaMail也提供了能够创建各种复杂MIME格式的邮件内容的相关API。


    3.JavaMail的体系结构与API分类
    JavaMail的API按其功能划分通常可以分为如下三大类:
    (1)创建和解析邮件内容的API:Message类是创建和解析邮件的核心API,它的实例对象
    代表一封电子邮件。

    (2)发送邮件的API:Transport类是发送邮件的核心API类,它的实例对象实现了某个邮件
    发送协议的邮件发送对象,例如SMTP协议。

    (3)接收邮件的API:Store类是接收邮件的核心API类,它的实例对象代表实现了某个邮件
    接受协议的和邮件接收对象,例如POP3协议。

    (4)Session类
        Session类用于定义整个应用服务所需的环境信息,以及收集客户端与邮件服务器建立网络连接
    的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送协议和接受协议等。Session对象根
    据这些信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象时提供信息
    支持。

    4.下载JavaMail的开发包
    我们在网上可以下载JavaMail的开发包,我们下载的版本是javamail-1.4.7。
    下载下来之后,是一个压缩文件,我们解压之后,可以看到里面有demo实例文件夹、
    docs开发文档文件夹、以及核心jar包lib文件夹和mail.jar以及其他若干文件:


    看一下lib文件夹中的jar:

    其中mailapi.jar是核心的jar包,它提供的邮件的发送与接收的总框架和接口,是邮件发送API
    与接收的龙骨。邮件发送的实现需要引入smtp.jar,邮件接收的实现需要引入pop3.jar、imap.jar
    或gimap.jar。而dsn.jar是发邮件用到的jar包,用来解析dsn。

    mail.jar中的内容包含了lib中的所有jar包的功能。提供lib的原因是因为有些开发人员只需要
    其中的一些功能,可以根据需要选择引入。

    5.JAF简介
    在我们生成一封邮件的时候,生成邮件API的内部,又调用了其他API。JavaMail内部调用了一个
    第三方Jar包,叫JAF。

    JAF(JavaBeans Activation Framework)即JavaBeans激活框架,是一个专用的数据处理框架,它
    用于封装数据,并为应用程序提供访问和操作数据的接口。

    JAF的主要作用在于让Java应用程序知道如何对一个数据源进行查看、编辑和打印等操作。对于通过
    JAF封装的数据,应用程序通过JAF提供的接口可以完成如下功能:
    (1)访问数据源中的数据
    (2)获知数据源的数据类型
    (3)获知可对数据进行的各种操作
    (4)用户对象数据执行某种操作时,自动创建执行该操作的软件部件的实例对象。

    JavaMail的API可以利用JAF从某种数据源中读取数据和获知数据的MIME类型,并用这些数据生成
    MIME消息中的消息体和消息类型。

    6.下载JAF的开发包
    既然我们的JavaMail需要引用JAF的API,所以我们这里也需要下载JAF。
    我们在网上下载JAF的开发包,我们这里下载的是JAF1.1的开发包。解压之后可以获得相关的文档
    和jar包:

    提示:如果使用JDK6以上的编译环境,则不需要单独下载JAF开发包。

    我们的API简单介绍和环境准备都已经完成,下一步我们要着手进行开发了。

    转载请注明出处:http://blog.csdn.net/acmman/article/details/71104658

    展开全文
  • Java邮件开发,JavaMail,

    简单的邮件开发


    1. Java邮件开发需要的jar包

    在本次的简单例子中,我只使用了一个jar包:mail.jar     (复杂的邮件开发需要更多的依赖包)


    2. 邮件的格式:

    首先,我们先看一下邮件的基本的格式(如下图):


    我们从上面的图片中可以看到,一个邮件Message包含了“发送者”(from)、“接收者”(Recipients)、以及“邮件内容”。

    所以,我们就可以根据开发文档(java)逐步的去设置各个部分。

    (开发参考包下载地址:链接:http://pan.baidu.com/s/1qY9cT8C 密码:x4jv)

    开发文档的参考内容(每一个类的使用):javamail-1.4.4\docs\javadocs\index.html 中

                                                    JavaMailAPI 参考文档:javamail-1.4.4\docs\JavaMail-1.4.pdf

    (上面两个参考文档很重要)


    3. 代码逐步实现:

    public class MailDemo1 {
    
    	public static void main(String[] args) throws Exception {
    		Properties props = new Properties();//key value:配置参数。
    		
    		props.setProperty("mail.host", "smtp.163.com");//163邮箱服务器地址
    		props.setProperty("mail.transport.protocol", "smtp");//邮件传输协议
    		props.setProperty("mail.debug", "true");
    		
    		Session session = Session.getInstance(props);//发送邮件时使用的换件配置
    		MimeMessage message = new MimeMessage(session);//创建一个邮件Message对象
    		
    		//设置邮件的头部
    		InternetAddress address = new InternetAddress("********@163.com");//发送者邮箱(写自己的邮箱)
    		message.setFrom(address);
    		message.setRecipients(Message.RecipientType.TO,"*******@qq.com");//接收者邮箱
    		message.setSubject("This is the second message");
    		
    		//设置正文
    		message.setContent("<h1>Hello<h1>", "text/html");
    		message.saveChanges();
    		//发送邮件
    		Transport transport = session.getTransport();
    		transport.connect("username", "password");//自己邮箱的账号和密码(要写自己的)
    		transport.sendMessage(message, message.getAllRecipients());
    		
    		//保存邮件
    		//message.writeTo(new FileOutputStream("d:/1.eml"));
    	}
    
    }

    展开全文
  • Java邮件开发-----JavaMail(一)

    万次阅读 多人点赞 2012-12-10 18:54:59
    前面介绍了电子邮件系统的基本知识(Java邮件开发-----电子邮件的基本概念),那篇博客知识对基础理论知识做一些简要介绍,并不妨碍我们做邮件开发。现在开始Java邮件开发。    一、JavaMail简介  JavaMail,...

             前面介绍了电子邮件系统的基本知识(Java邮件开发-----电子邮件的基本概念),那篇博客知识对基础理论知识做一些简要介绍,并不妨碍我们做邮件开发。现在开始Java邮件开发。

     

             一、JavaMail简介

             JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。JavaMail API是Sun公司为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如:SMTP、POP3、IMAP。开发人员使用JavaMail API编写邮件处理软件时,无须考虑邮件协议底层的实现细节,只要调用JavaMail开发包中相应的API类就可以了。

     

             二、JavaMail开发环境

             在进行JavaMail开发之前必须要导入相应的jar包。该jar包可以到oracle的官网上面下载:http://www.oracle.com/technetwork/java/javamail/index.html

             下载完成后解压可以得到如下一个目录:

             其中mail.jar:就是开发javamail程序所必须要用到的核心开发包。

             demo子目录:示例程序。

             demo子目录:示例程序

             lib子目录:该目录下包含5个独立的邮件开发包:smtp.jar、pop3.jar、imap.jar和mailapi.jar,这5个jar文件是对mail.jar文件的分类包装。其中mailapi.jar封装了创建邮件内容和面向普通开发人员调用邮件发送和接收的API类,其它三个jar文件则是封装了它们名称相对应协议的服务实现程序。。在编译Java邮件程序时,只需要mailapi.jar文件即可,但是,在运行时必须要有相应邮件协议的底层服务实现程序。如果应用程序中只需要使用到邮件发送功能,则可以只安装smtp.jar和mailapi.jar这两个文件,如果应用程序只需要使用邮件的接收功能,则可以只安装pop3.jar或imap.jar和mailapi.jar这两个jar文件,而不用安装整个mail.jar文件。

             Lib目录如下:

             三、JavaMail API的介绍

             JavaMail API按其功能划分通常分为如下三大类“:

                 1、创建和解析邮件内容的API。Message类是创建和解析邮件的核心API。它的实例对象代表了一封电子邮件。

                 2、发送邮件的API。Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,如SMTP协议。

                 3、接收邮件的API。Store类是接收邮件的核心API类,它的实例对象代表了实现某个邮件接收协议的邮件接收对象,例如POP3协议。

             JavaMail的工作流程如下:

             在这个工作流程中,MessageSessionTransportStore四个对象紧密相连的完成一封电子邮件的发送和接收。我们只需要了解这个四个核心API的功能和作用,知道他们的工作关系和电子邮件的工作流程,就能够很容易的编写出JavaMail来了。对于JavaMail的辅助类而言,当我们需要他们的时候可以顺藤摸瓜,查看文档来解决。

             

             核心API的介绍:

             Message

             Message 类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件。在客户端发送邮件时,先穿件邮件的API,将创建的邮件的数据封装到Message对象中,然后把这个对象传递给邮件发送API发送出去。在客户端接收到邮件时,邮件接收API把接收的油价数据装在Message的实例对象中,客户端在使用邮件解析API从这个对象中解析出来接收到的邮件数据。

             

             Session

             Session 类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。Session对象根据这些会话信息构建邮件收发的Store和Transport对象,以及为客户端创建Message对象提供信息支持。


             Transport
              Transport
    类是发送邮件的核心API类,它的实例对象,代表实现了某个邮件发送协议的邮件发送对象,例如SMTP 协议。客户端程序创建好Message对象后,只需要使用邮件发送API得到 Transport 对象,然后把 Message 对象传递给 Transport 对象,并调用它的发送方法,就可以把邮件发送给指定的SMTP服务器。
             Store
              Store
    类是接收邮件的核心API类,它的实例对象代表实现某个邮件接收协议的邮件接收对象,例如POP3和IMAP协议。客户端程序接收邮件时,只需要使用邮件接收API得到Store对象,然后调用Store对象的接收方法,就可以从指定的 POP3服务器中获得邮件数据,并把这些邮件数据封装到表示邮件的Message对象中。

     

             四、实例

    public class JavaMail_01 {
    	public static void main(String[] args) throws Exception {
    		Properties props = new Properties();
    		props.setProperty("mail.smtp.auth", "true");
    		props.setProperty("mail.transport.protocol", "smtp");
    		
    		Session session = Session.getInstance(props);
    		session.setDebug(true);
    		
    		Message msg = new MimeMessage(session);
    		msg.setSubject("这是一个测试程序....");
    		msg.setText("你好!这是我的第一个javamail程序---陈明");
    		msg.setFrom(new InternetAddress("******@163.com"));
    
    		Transport transport = session.getTransport();
    		transport.connect("smtp.163.com", 25, "*******", "********");
     		transport.sendMessage(msg,new Address[]{new InternetAddress("chenssy995812509@sina.cn")});
    
    		System.out.println("邮件发送成功...");
    		transport.close();
    	}
    }


     

    展开全文
  • 一、JavaMail简介 ...JavaMail API是Sun公司为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如:SMTP、POP3、IMAP。开发人员使用JavaMail API编写邮件
    一、JavaMail简介
    

      JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。JavaMail API是Sun公司为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如:SMTP、POP3、IMAP。开发人员使用JavaMail API编写邮件处理软件时,无须考虑邮件协议底层的实现细节,只要调用JavaMail开发包中相应的API类就可以了。

      二、JavaMail开发环境

      在进行JavaMail开发之前必须要导入相应的jar包。该jar包可以到Windows xp系统下载oracle的官网上面下载

      下载完成后解压可以得到一个目录:

      其中mail.jar:就是开发javamail程序所必须要用到的核心开发包。

      demo子目录:示例程序。

      demo子目录:示例程序。

      lib子目录:该目录下包含5个独立的邮件开发包:smtp.jar、pop3.jar、imap.jar和mailapi.jar,这5个jar文件是对mail.jar文件的分类包装。其中mailapi.jar封装了创建邮件内容和面向普通开发人员调用邮件发送和接收的API类,其它三个jar文件则是封装了它们名称相对应协议的服务实现程序。。在编译Java邮件程序时,只需要mailapi.jar文件即可,但是,在运行时必须要有相应邮件协议的底层服务实现程序。如果应用程序中只需要使用到邮件发送功能,则可以只安装smtp.jar和mailapi.jar这两个文件,如果应用程序只需要使用邮件的接收功能,则可以只安装pop3.jar或imap.jar和mailapi.jar这两个jar文件,而不用安装整个mail.jar文件。

      Lib目录如下:

      三、JavaMail API的介绍

      JavaMail API按其功能划分通常分为如下三大类“:

      1、创建和解析邮件内容的API。Message类是创建和解析邮件的核心API。它的实例对象代表了一封电子邮件。

      2、发送邮件的API。Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,如SMTP协议。

      3、接收邮件的API。Store类是接收邮件的核心API类,它的实例对象代表了实现某个邮件接收协议的邮件接收对象,例如POP3协议。

      JavaMail的工作流程如下:

      在这个工作流程中,Message、Session、Transport、Store四个对象紧密相连的完成一封电子邮件的发送和接收。我们只需要了解这个四个核心API的功能和作用,知道他们的工作关系和电子邮件的工作流程,就能够很容易的编写出JavaMail来了。对于JavaMail的辅助类而言,当我们需要他们的时候可以顺藤摸瓜,查看文档来解决。

     核心API的介绍:

      Message

      Message 类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件。在客户端发送邮件时,先穿件邮件的API,将创建的邮件的数据封装到Message对象中,然后把这个对象传递给邮件发送API发送出去。在客户端接收到邮件时,邮件接收API把接收的油价数据装在Message的实例对象中,客户端在使用邮件解析API从这个对象中解析出来接收到的邮件数据。

      Session

      Session 类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。Session对象根据这些会话信息构建邮件收发的Store和Transport对象,以及为客户端创建Message对象提供信息支持。

      Transport

      Transport 类是发送邮件的核心API类,它的实例对象,代表实现了某个邮件发送协议的邮件发送对象,例如SMTP 协议。客户端程序创建好Message对象后,只需要使用邮件发送API得到 Transport 对象,然后把 Message 对象传递给 Transport 对象,并调用它的发送方法,就可以把邮件发送给指定的SMTP服务器。

      Store

      Store 类是接收邮件的核心API类,它的实例对象代表实现某个邮件接收协议的邮件接收对象,例如POP3和IMAP协议。客户端程序接收邮件时,只需要使用邮件接收API得到Store对象,然后调用Store对象的接收方法,就可以从指定的 POP3服务器中获得邮件数据,并把这些邮件数据封装到表示邮件的Message对象中。

      四、实例

    public class JavaMail_01 {
    public static void main(String[] args) throws Exception {
    Properties props = new Properties();
    props.setProperty("mail.smtp.auth", "true");
    props.setProperty("mail.transport.protocol", "smtp");

    Session session = Session.getInstance(props);
    session.setDebug(true);

    Message msg = new MimeMessage(session);
    msg.setSubject("这是一个测试程序....");
    msg.setText("你好!这是我的第一个javamail程序---陈明");
    msg.setFrom(new InternetAddress(******@163.com));

    Transport transport = session.getTransport();
    transport.connect("smtp.163.com", 25, "*******", "********");
    transport.sendMessage(msg,new Address[]{new InternetAddress(chenssy995812509@sina.cn)});

    System.out.println("邮件发送成功...");
    transport.close();
    }
    }

    展开全文
  • java邮件开发

    2019-07-15 22:16:15
    一、邮件协议: (重点)SMTP:发送邮件的协议。Simple Message Transfer Protocal。默认端口:25 POP:邮局协议(收件协议)。Post Office Protocal。默认端口:110 二、邮件的发送过程 三、JavaMail ...
  • JavaWeb-JavaMail邮件开发

    万次阅读 2017-06-12 12:45:34
    几乎所有的编程语言都支持发送和接收电子邮件,但是,先等等,在我们开始编写代码之前,有必要搞清楚电子邮件是如何在互联网上运作的。我们来看看传统邮件是如何运作的。假设你现在在北京,要给一个香港的朋友发一封...
  • 这次,我们要着手使用JavaMail开发一个可以发送邮件的程序。 1.创建工程 首先我们在Eclipse中新建一个名为JavaMailTest的工程: 然后我们新建一个lib文件夹,将mail.jar放入文件夹中,然后右键选择 Build Path-...
  • Java实现发送邮件

    2020-07-23 10:15:17
    技术:java.mail maven依赖: <!-- 邮件发送API https://mvnrepository.com/artifact/javax.mail/mail --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</...
  • 项目视频讲解_java邮件开发视频教程

    千次阅读 2014-01-07 20:34:20
    java邮件开发视频教程
  • package zxx.createMessage;...import java.io.FileOutputStream; import java.util.Date; import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.internet.Inter
  • java邮件开发详解

    千次阅读 2011-11-25 18:08:33
    SMTP服务器用于替用户发送邮件和接收外面发送给本地用户的邮件,它相当于现实生活中的邮局的邮件接收部门(可接收普通客户要投出的邮件和其他邮局投递进来的邮件); POP3/IMAP服务器,举例:在现实生活中我去...
  • 1. 前面介绍了如何编写一个简单的电子...邮件主要内容和功能如下,下面请看具体案例和注释分析: package com.csdn.itcast; import java.io.FileOutputStream; import java.io.OutputStream; import java.ut
  • java邮件开发--心得2-入门2

    千次阅读 2013-01-28 21:06:13
    1. 用命令(手工)发送邮件 第一步:连接服务器,telnet smtp.sina.com  25(这里以新浪的stmp服务器为例,火狐的端口号是110)。 第二步:具体实施,先打个招呼(ehlo);然后选择登陆验证方式,是auth login ...
  • package zxx.createMessage;...import java.io.FileOutputStream; import java.util.Date; import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.internet
  • 之前我们学会了如何发送一封邮件,那么下面我们来学习如何生成一封有良好格式的邮件。 原来我们发邮件的时候基本上没有添加任何格式,但是一封正规的邮件是需要良好的格式与 排版的,这样邮件处理程序才能从中分析...
  • Java邮件开发简单例子

    千次阅读 2012-12-17 22:41:04
    Java邮件开发简单例子,代码源自传智播客巴巴运动网,已经把这个小Demo项目放在个人的资源里了!这里使用的是163邮箱服务器! package com.wxc.util.email; import java.io.File; import java.util.Date; import...
  • 导读 本篇博客主要内容: 1、邮件服务器 2、电子邮箱 3、邮件客户端软件 4、邮件传输协议 ...电子邮件服务器主要功能: (1)接受用户投递的邮件 (2)将用户投递进来的邮件转发给目标邮件服务器
  • Java邮件开发-----JavaMail(三)

    千次阅读 2012-12-10 20:16:26
    前面两篇博客都只是最基本的邮件最简单的邮件发送...在进行复合邮件开发之前需要对复合邮件的结构有一定的了解。  复合邮件的整体结构   上面这幅图片展示了一封复合邮件的整体结构,我们可以看出一封复杂的电子
  • 我们在网络社交中,经常使用邮件的方式来发送我们的信息。某些时候,我们 ...例如游戏付费激活的时候,会以邮箱的形式给你发送激活码进行激活,再比如, 当你的信用卡消费的时候,你...接下来我们就来学习如何使用Java开发
  • JMail是进行邮件开发的组件。由于所需要的jar非官方开发,需要自行下载所需jar包,我使用的是javamail-1.4.7。 不了解收发邮件过程的请先浏览我的另一片博客:电子邮件工作原理  大致步骤: 1. 创建Properties对象...
1 2 3 4 5 ... 20
收藏数 134,581
精华内容 53,832
热门标签
关键字:

java邮件开发