javamail简单了解
来源:互联网 发布:java基础书籍 编辑:程序博客网 时间:2024/05/16 04:57
javamail
概述
javamail是一套收发电子邮件的API,不同的厂商可以提供自己的实现类。厂商提供的javamail程序可以有选择实现某些邮件协议。除javamail服务程序外,还需要JAF(Javabean Activation Framework)来处理不是纯文本的邮件内容,包括MIME,URL页面和文件附件等内容。
邮件协议
SMTP协议Simple Mail Transfer Protocol:简单邮件传输协议。
发送电子邮件的机制。SMTP服务器会中转消息给接收方SMTP服务器以便最终让用户经由POP或IMAP获得
POP3协议 Post Office Protocol - Version 3。 邮局协议。
用于接收电子邮件的协议。功能简单,但是可以卸载信息以减少磁盘占用
IMAP协议 Internet Mail Access Protocol internet邮件访问协议。
互联网消息协议,用户在服务器上有多个文件夹,并且被多个用户共享。功能强大,但是容易占用太多磁盘
用于取代POP3协议。
MIME (Multipurpose Internet Mail Extensions多用途互联网邮件扩展)
不是传输协议,但是对传输的内容定义了格式。
javamail中的关键对象
Properties
定义了服务器的一系列属性信息。
Session
是配置信息的集合。主要作用是:1. 接收各种配置属性信息,Properties提供的。2. 初始化JavaMail环境。
Message 消息对象
发送消息的抽象类,一般使用MimeMessage子类实现
Address 地址
描述地址的抽象类,一般使用InternetAddress子类实现
Authenticator 认证者
密码认证的抽象类,使用PasswordAuthenticator子类实现
javamail 的简单模拟
1. 基本邮件发送程序,以126邮件为例子
先写Authenticator的实现类
public class MyAuthenticator extends Authenticator { //邮箱名 private String name; //邮箱第三方登录认证码 private String pwd; public MyAuthenticator(String name, String pwd ) { this.name=name; this.pwd=pwd; } //因为Authenticator是抽象类无法new出来,要使用PasswordAuthentication //重写方法获得PasswordAuthentication @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication (this.name,this.pwd); }}
写邮件发送类
/** * 邮件发送程序 */public class SxtMail { public static void sendMail() throws MessagingException, UnsupportedEncodingException { //发送的信息 Message message = null; //配置文件,配置邮箱的协议 端口等 Properties properties = new Properties(); properties.put("mail.smtp.host","smtp.126.com"); properties.setProperty("mail.smtp.port","25"); properties.put("mail.smtp.auth","true"); //session负责收集配置,并初始化邮件上下文环境 Session session = Session.getInstance(properties,new MyAuthenticator("worldtest@126.com","邮件第三方认证码")); //通过session建立message message = new MimeMessage(session); //设置地址 Address from = new InternetAddress("发件方邮件地址"); //设置发送方 message.setFrom(from); //设置收件方 message.setRecipient(Message.RecipientType.TO,new InternetAddress("worldtest@126.com")); //设置邮件日期和标题 message.setSentDate(new Date()); message.setSubject("html邮件"); Multipart multipart = new MimeMultipart(); //加入html内容过程 BodyPart bodyPart = new MimeBodyPart(); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("<html><body><a href='http://www.baidu.com'>百度一下 </a></body></html>"); bodyPart.setContent(stringBuffer.toString(),"text/html;charset=utf-8"); multipart.addBodyPart(bodyPart); //加入附件过程 BodyPart bodyPart2 = new MimeBodyPart(); FileDataSource fds = new FileDataSource(new File("D:\\redis.txt")); bodyPart2.setDataHandler(new DataHandler(fds)); bodyPart2.setFileName(MimeUtility.encodeText("redis.txt")); multipart.addBodyPart(bodyPart2); //设置邮件内容 message.setContent(multipart); //发送 Transport.send(message); }}
public class MailTest { public static void main(String[] args) throws MessagingException, UnsupportedEncodingException { SxtMail.sendMail(); }}
阅读全文
0 0
- javamail简单了解
- JavaMail了解
- JavaMail了解1
- 简单的JavaMail例子
- javamail 简单例子
- javaMail简单使用
- javaMail的简单应用
- JavaMail发送简单邮件
- javamail简单实例
- JavaMail简单应用
- javamail 简单demo
- javamail的简单使用
- 一个简单的javaMail
- JavaMail 发送简单邮件
- 简单的JavaMail教程
- JavaMail简单入门案例
- javamail的简单使用
- JavaMail 简单发送邮件
- 安卓开发指南之Intent 和 Intent 过滤器
- Android 禁止屏幕休眠和锁屏的方法
- 目标检测“Perceptual Generative Adversarial Networks for Small Object Detection”
- 运动轨迹
- codeforces 187A 模拟
- javamail简单了解
- TIFF图像格式解析
- spring的简介
- 谷歌,火狐浏览器不支持showModalDialog的解决方法
- Python--Loops,Unpacking,Lambda
- 自旋锁和信号量的区别
- 四.Spring之使用注解配置Spring
- JDK、Spring、Quartz等几种不同定时器的用法,以及cronExpression表达式定义
- 为什么这些UI设计很糟糕?什么是好的UI设计?