利用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 ...
随机推荐
- Flexbox 布局教程
Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为 Flex 布局. 使用 fle ...
- 从ELK到EFK演进
背景 作为中国最大的在线教育站点,目前沪江日志服务的用户包含网校,交易,金融,CCTalk 等多个部门的多个产品的日志搜索分析业务,每日产生的各类日志有好十几种,每天处理约10亿条(1TB)日志,热数 ...
- Thinkphp5 模型 验证器执行顺序问题
Thinkphp5把模型的验证规则归为一个验证器,这种做法,不知到符不符合大家的心意,反正楼主是比较不爽的 楼主更倾向于tp3.2的验证规则直接写在模型里面,毕竟你的验证规则一般而言是针对模型来验证的 ...
- SQL Server 行转列,列转行。多行转成一列
一.多行转成一列(并以","隔开) 表名:A 表数据: 想要的查询结果: 查询语句: SELECT name , value = ( STUFF(( SELECT ',' + va ...
- Java 内存区域划分 备忘录
最近看了<深入理解虚拟机>的内存分配与管理这部分的内容,这里做一个的总结,以加深我对知识点的理解,如有错误的地方,还望大神们指出,我及时更正: 内存区域划分 首先是下面这幅图: 图 1. ...
- [java语言]——InetAddress类的getByName()方法
InetAddress---表示互联网协议(IP)地址 ---InetAddress.getByName("www.163.com")----在给定主机名的情况下确定主机的IP地址 ...
- Python和Excel交互
Python和Excel交互 使用的python包为XlsxWriter 下载的链接 https://pypi.python.org/pypi/XlsxWriter 初级的例子: def write_ ...
- [转]Oracle 创建 DBLink 的方法
http://blog.csdn.net/davidhsing/article/details/6408770 1.如果需要创建全局 DBLink,则需要先确定用户有创建 dblink 的权限: 如果 ...
- ASP.NET Core 认证与授权[5]:初识授权
经过前面几章的姗姗学步,我们了解了在 ASP.NET Core 中是如何认证的,终于来到了授权阶段.在认证阶段我们通过用户令牌获取到用户的Claims,而授权便是对这些的Claims的验证,如:是否拥 ...
- 32.Linux-2440下的DMA驱动(详解)
DMA(Direct Memory Access) 即直接存储器访问, DMA 传输方式无需 CPU 直接控制传输,通过硬件为 RAM .I/O 设备开辟一条直接传送数据的通路,能使 CPU 的效率大 ...