JavaMail是SUN提供给开发者在应用程序中实现邮件发送和接收功能而提供的一套标准开发类库,支持经常使用的邮件协议,如SMTP、POP3、IMAP。开发者使用JavaMail编写邮件程序时,无需考虑底层的通信细节(Socket)。JavaMail也提供了可以创建出各种复杂MIME格式的邮件内容的API。

使用JavaMail。我们可以实现类似OutLook、FoxMail的软件。

尽管JavaMail(仅支持JDK4及以上)也是Java的API之中的一个,可是却没有直接增加到JDK中,所以我们须要另行下载。另外,JavaMail依赖JAF(JavaBeans
Activation Framework),JAF在Java6之后已经合并到JDK中,而JDK5之前须要另外下载JAF的类库。下载地址例如以下:

https://java.net/projects/javamail/pages/Home#Download_JavaMail_1.5.2_Release

欢迎訪问www.findspace.name来获取很多其它信息

利用这个api。之前写的那个抓取站点更新的工具就有了邮件通知管理员的功能啦~

事实上仅仅须要那个javax.mail.jar,把这个jar包导入到你的项目以下就可以。

JavaMail包括两部分内容。一部分是JavaMail API,定义了一组平台无关、独立于通讯协议的邮件程序框架,该部分称为应用级接口,也就是供我们调用的部分。还有一部分是service provider。该部分使用特定的协议语言来实现第一部分定义的抽象类和接口。这些协议包括:SMTP、NNTP、POP3、IMAP,假设让JavaMail与邮件server通信。就须要对应的协议支持,该部分称为服务提供者接口。也就是JavaMail自身须要的协议支持。

在使用JavaMail时,通常我们仅仅需将mail.jar放在classpath下使用。它包括了JavaMail
API部分和SUN自己实现的service provider部分。可能也有特殊的时候,我们应用程序中须要自己实现service provider部分,那我们仅仅须要mailapi.jar。以下通过几个类来简单认识下JavaMail API:

javax.mail.Session:上下文环境信息,如server的主机名、端口号、协议名称等
javax.mail.Message:邮件模型。发送邮件和接收邮件的媒介,封装了邮件的信息。如发件人、收件人、邮件标题、邮件内容等
javax.mail.Transport:连接邮件SMTPserver,发送邮件
javax.mail.Store:连接邮件POP3、IMAPserver,收取邮件

通过这些类。终于就能够实现收发邮件,一个发送邮件的简单演示样例:

public class JavaMailTest1 {
public static void main(String[] args) throws MessagingException {
Properties props = new Properties();
// 开启debug调试
props.setProperty("mail.debug", "true");
// 发送server须要身份验证
props.setProperty("mail.smtp.auth", "true");
// 设置邮件server主机名
props.setProperty("mail.host", "smtp.163.com");
// 发送邮件协议名称
props.setProperty("mail.transport.protocol", "smtp"); // 设置环境信息
Session session = Session.getInstance(props); // 创建邮件对象
Message msg = new MimeMessage(session);
msg.setSubject("JavaMail測试");
// 设置邮件内容
msg.setText("这是一封由JavaMail发送的邮件! ");
// 设置发件人
msg.setFrom(new InternetAddress("java_mail_001@163.com")); Transport transport = session.getTransport();
// 连接邮件server
transport.connect("java_mail_001", "javamail");
// 发送邮件
transport.sendMessage(msg, new Address[] {new InternetAddress("java_mail_002@163.com")});
// 关闭连接
transport.close();
}
}

终于执行后。邮件发送成功。因为我们开启了debug调试。在控制台能够看到JavaMail和server之间的交互信息记录。

创建Session对象时可能须要的属性具体信息例如以下:

Name Type Description
mail.debug boolean The initial debug mode. Default is false.
mail.from String The return email address of the current user, used by theInternetAddressmethodgetLocalAddress.
mail.mime.address.strict boolean The MimeMessage class uses the InternetAddress methodparseHeader to
parse headers in messages. This property controls the strict flag passed to theparseHeader method.
The default is true.
mail.host String The default host name of the mail server for both Stores and Transports. Used if themail.protocol.host property
isn’t set.
mail.store.protocol String Specifies the default message access protocol. The SessionmethodgetStore()returns
a Store object that implements this protocol. By default the first Store provider in the configuration files is returned.
mail.transport.protocol String Specifies the default message transport protocol. TheSessionmethodgetTransport() returns
a Transport object that implements this protocol. By default the first Transport provider in the configuration files is returned.
mail.user String The default user name to use when connecting to the mail server. Used if themail.protocol.user property
isn’t set.
mail.protocol.class String Specifies the fully qualified class name of the provider for the specified protocol. Used in cases where more than one provider for a
given protocol exists; this property can be used to specify which provider to use by default. The provider must still be listed in a configuration file.
mail.protocol.host String The host name of the mail server for the specified protocol. Overrides themail.host property.
mail.protocol.port int The port number of the mail server for the specified protocol. If not specified the protocol’s default port number is used.
mail.protocol.user String The user name to use when connecting to mail servers using the specified protocol. Overrides themail.user property.

本文来自:高爽|Coder。原文地址:http://blog.csdn.net/ghsau/article/details/17839983,转载请注明。

利用java mail发送邮件(转)的更多相关文章

  1. 利用java mail发送邮件

    import java.util.Date; import java.util.Properties; import javax.activation.DataHandler; import java ...

  2. Java网络编程:利用Java mail包发送电子邮件

    下面代码是利用Java mail包封装了一个发送邮件的类 import java.io.File; import java.util.ArrayList; import java.util.Date; ...

  3. Spring Boot 揭秘与实战(七) 实用技术篇 - Java Mail 发送邮件

    文章目录 1. Spring Boot 集成 Java Mail 2. 单元测试 3. 源代码 Spring 对 Java Mail 有很好的支持.因此,Spring Boot 也提供了自动配置的支持 ...

  4. java mail(发送邮件--163邮箱)

    package com.util.mail; /** * 发送邮件需要使用的基本信息 */ import java.util.Properties; public class MailSenderIn ...

  5. java mail发送邮件

    最近做了自动发送邮件功能,带附件的:需要的jar包有

  6. 使用Java Mail发送邮件

    本笔记参考自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/17839983 JavaMail是SUN提供给开发人员在应用程序中实现 ...

  7. 简单的java mail发送邮件实例

    mail.jar ,commons-email-X.X.jar ,activation.jar ,log4j.jar  这四个jar,放进项目里 下载地址 http://www.oracle.com/ ...

  8. Java Mail 发送邮件(SSL加密方式,TSL加密方式)

    一.一般配置 发送邮件需要用到  mail包 maven 依赖如下: <!-- https://mvnrepository.com/artifact/javax.mail/mail --> ...

  9. 使用java mail 发送邮件

    1.关联jar包:   activation.jar   mail.jar 2.调用 @Test public void test1() { List<String> imageUrlLi ...

随机推荐

  1. VS2013创建Windows服务

    一.创建服务 1.文件->新建->项目->windows桌面->windows服务,修改你要的项目名称.我这不改名,仍叫WindowsService1,确定. 2.其中的Pro ...

  2. 开源API测试工具 Hitchhiker v0.4更新 - 没有做不到,只有想不到

    Hitchhiker 是一款开源的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起管理Api. 详细介绍 ...

  3. 如何优雅的设计React组件

    如何优雅的设计 React 组件 如今的 web 前端已被 React.Vue 和 Angular 三分天下,一统江山十几年的 jQuery 显然已经很难满足现在的开发模式.那么,为什么大家会觉得 j ...

  4. 运维必须掌握的150个Linux命令

    线上查询及帮助命令(1个)man 目录操作命令(6个)ls tree pwd mkdir rmdir cd 文件操作命令(7个)touch cp mv rm ln find rename 文件查看及处 ...

  5. JS中有关数组Array的常用方法函数

    Array对象的方法主要有如下几种(我所知道的): concat()连接两个或多个数组,并返回结果,但是值得注意的是该方法并不改变数组本身,而仅仅返回一个数组连接的副本. push()在数组后面添加一 ...

  6. Java字符编码

    今天在往oracle数据库里插入数据时发现,往一个20字节的字段里插入8个汉字加上一个括号,并没有提示字段超长.猜想数据库应该并没有用万国码(utf-8). 查询数据库编码sql:select * f ...

  7. OpenTSDB - 分布式可扩展的监控系统

    OpenTSDB - A Distributed, Scalable Monitoring System http://opentsdb.net/getting-started.html http:/ ...

  8. Java中static关键字的详解

    static关键字可以修饰方法和成员变量(不可以修饰局部变量,但是可以修饰内部类). static关键字方便在没有创建对象的情况下来进行调用(方法/变量). 很显然,被static关键字修饰的方法或者 ...

  9. 用StringBuilder和StringBuffer实现的Unicode解码方法的比较(Java)

    初衷是用正则来写一个Unicode字符串转码的方法,一开始是打算结合StringBuilder写的,但是看到jdk7的Matcher.appendReplacement文档中一段示例代码用了Match ...

  10. linux平台搭建postfix邮件服务器

    一,搭建邮件服务器前准备如下: Centos 7.2 64位Postfix-2.8.12.tar.gz Postfix MTA(邮件传输代理)Dovecot-2.1.8.tar.gz IMAP 和 P ...