利用java mail发送邮件(转)
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 toparse headers in messages. This property controls the strict flag passed to the parseHeader 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 propertyisn’t set. |
| mail.store.protocol | String | Specifies the default message access protocol. The SessionmethodgetStore()returnsa 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() returnsa 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 propertyisn’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发送邮件(转)的更多相关文章
- 利用java mail发送邮件
import java.util.Date; import java.util.Properties; import javax.activation.DataHandler; import java ...
- Java网络编程:利用Java mail包发送电子邮件
下面代码是利用Java mail包封装了一个发送邮件的类 import java.io.File; import java.util.ArrayList; import java.util.Date; ...
- Spring Boot 揭秘与实战(七) 实用技术篇 - Java Mail 发送邮件
文章目录 1. Spring Boot 集成 Java Mail 2. 单元测试 3. 源代码 Spring 对 Java Mail 有很好的支持.因此,Spring Boot 也提供了自动配置的支持 ...
- java mail(发送邮件--163邮箱)
package com.util.mail; /** * 发送邮件需要使用的基本信息 */ import java.util.Properties; public class MailSenderIn ...
- java mail发送邮件
最近做了自动发送邮件功能,带附件的:需要的jar包有
- 使用Java Mail发送邮件
本笔记参考自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/17839983 JavaMail是SUN提供给开发人员在应用程序中实现 ...
- 简单的java mail发送邮件实例
mail.jar ,commons-email-X.X.jar ,activation.jar ,log4j.jar 这四个jar,放进项目里 下载地址 http://www.oracle.com/ ...
- Java Mail 发送邮件(SSL加密方式,TSL加密方式)
一.一般配置 发送邮件需要用到 mail包 maven 依赖如下: <!-- https://mvnrepository.com/artifact/javax.mail/mail --> ...
- 使用java mail 发送邮件
1.关联jar包: activation.jar mail.jar 2.调用 @Test public void test1() { List<String> imageUrlLi ...
随机推荐
- Python学习笔记整理总结【语言基础篇】
一.变量赋值及命名规则① 声明一个变量及赋值 #!/usr/bin/env python # -*- coding:utf-8 -*- # _author_soloLi name1="sol ...
- SQL SERVER 2012设置自动备份数据库
为了防止数据丢失,这里给大家介绍SQL SERVER2012数据自动备份的方法: 一.打开SQL SERVER 2012,如图所示: 服务器类型:数据库引擎: 服务器名称:127.0.0.1(本地), ...
- 虚拟机通信配置与Xshell连接
本文主要讲解虚拟机通信配置的详细步骤和Xshell工具连接,以及如何诊断网络问题并进行相应配置的问题. 1. 虚拟机通信配置 虚拟机通信配置的基本流程如图所示: 首先,我们先打开新建的虚拟机,然后输入 ...
- 用C#实现DES加密解密解决URL参数明文的问题
啥也不说,直接上代码. 加密解码,封装到一个类,key可以自己修改. using System; using System.Security.Cryptography; using System.Te ...
- asp.net web api 版本控制
版本控制 版本控制的方法有很多,这里提供一种将Odata与普通web api版本控制机制统一的方法,但也可以单独控制,整合控制与单独控制主要的不同是:整合控制通过VersionController ...
- [转载] Netty源码分析
转载自http://blog.csdn.net/kobejayandy/article/details/11836813 Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高 ...
- tornado的非异步阻塞模式
[优化tornado阻塞任务的三个选择] 1.优化阻塞的任务,使其执行时间更快.经常由于是一个DB的慢查询,或者复杂的上层模板导致的,这个时候首要的是加速这些任务,而不是优化复杂的webserver. ...
- SSH框架基础
首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框 ...
- 01_Python简介
Python 简介 *为什么学习python http://bbs.fishc.com/thread-35584-1-1.html Python 特点 易于学习:Python有相对较少的关键字,结构简 ...
- 在动态链接库dll中弹出对话框
在动态链接库dll中弹出对话框步骤: 1.添加Dialog资源,然后在资源视图的对话框界面右击添加类,输入类名MyDlg,使得其继承与CDialogEx.(继承CDialog应该也可以)2.在新生成的 ...