利用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 ...
随机推荐
- PHPMailer 发送邮件(二)
发现PHPMailer又做了较大的更新,以前发送邮件的方法已不太适用,刚好要做一个实验,需要搭建个环境,这里使用Gmail进行测试,现记录下来. 传送地址Github: PHPMailer 基本要求的 ...
- ORM框架SQLAlchemy与权限管理系统的数据库设计
SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用对象关系映射进行数据库操作,即:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果. 执行流 ...
- Ubuntu Server无线上网
在自己电脑上装个Ubuntu Server,需要连接无线上网,参照附录的两个连接完成. 重置的自己路由器,只是为了找ssid和密码 配置步骤: 1. 生成无线上网密码配置文件 root@Ubuntu: ...
- 分布式网络文件系统--MooseFS
一.介绍 1.简介 MooseFS是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本.对于访问的客户端或者用户来说,整个分布式网 ...
- mybatis逆向工程之配置
逆向工程1.什么是逆向工程mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml. ...
- Python 面向对象(二) 特殊方法
一些Python特殊方法的汇总 __bases__ 类的基类,返回元祖__base__ 类的基类,也叫父类__call__ '类名()',类名加括号调用时执行的语句__class__ 对象或类 ...
- centos6.5 短信猫部署发短信
本文为在centos下部署短信猫发短信使用,以下为具体环境和步骤说明,欢迎留言! 一.环境说明 服务器:centos6.5 x64 依赖包:lockdev-1.0.1-18.el6.x86_64.rp ...
- C#Winform窗体 DataGridView全选按钮的实现方式
最近,在做CS程序遇到一个头疼的问题,datagridview列表的全选按钮遇到各种问题,做的是自适应窗体大小,当窗体最大化导致全选按钮出现与列表数据不一致,特别不搭配,试了很久,网上也找了好多资料各 ...
- Android Studio 升级到3.0 提示 java.lang.NoClassDefFoundError
Android Studio 升级到3.0 提示 java.lang.NoClassDefFoundError 这个问题折腾了2个小时,最后解决了,Stack Overflow 上也有一次类似的问题, ...
- wex5 设置文本居中或图片居中
wex5 设置文本居中 text-align:center就好了,display要设置成block 或图片居中 设置class属性的居中