使用JavaMail的Java邮件发送
来源:互联网 发布:电子实验室软件 编辑:程序博客网 时间:2024/06/05 03:17
简介:
当今时代,电子邮件在各大网站都是非常常见且应用非常的广泛,比喻在网站注册一个账号后,系统自动发送一个激活邮件,点击链接发送请求才能登录,以及通过邮件找回密码等等。本文将介绍使用java来发送邮件。
一、电子邮件协议
常用的电子邮件协议有SMTP、POP3、IMAP4,它们都属于TCP/IP协议簇,默认状态下,分别通过TCP端口25、110和143
建立连接。下面分别对其进行简单介绍
SMTP协议:
SMTP的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,
通过它来控制邮件的中转方式。SMTP 协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP
服务器就是遵循SMTP协议的发送邮件服务器。SMTP认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP
服务器,这就使得那些垃圾邮件的散播者无可乘之机。增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。
POP协议:
POP邮局协议负责从邮件服务器中检索电子邮件。主要作用是:从邮件服务器中检索邮件并从服务器中删除这个邮件;从邮件
服务器中检索邮件但不删除它;不检索邮件,只是询问是否有新邮件到达。POP协议支持多用户互联网邮件扩展,后者允许用户在
电子邮件上附带二进制文件,如文字处理文件和电子表格文件等,实际上这样就可以传输任何格式的文件了,包括图片和声音文件
等。
IMAP协议:
访问协议(IMAP)并且优于POP的新协议。和POP一样,IMAP也能下载邮件、从服务器中删除邮件或询问是否有新邮件,但
IMAP克服了POP的一些缺点。例如,
它可以决定客户机请求邮件服务器提交所收到邮件的方式,请求邮件服务器只下载所选中的邮件而不是全部邮件。
它可以决定客户机请求邮件服务器提交所收到邮件的方式,请求邮件服务器只下载所选中的邮件而不是全部邮件。
实例:
public static void sendMail(String to,String msg) throws Exception{ Properties prop = new Properties(); /** 创建连接对象,连接到邮件服务器**/ prop.setProperty("mail.host","smtp.163.com");/** 设置邮箱主机名 **/ prop.setProperty("mail.transport.protocol","smtp");/** 发送邮件协议名 **/ prop.setProperty("mail.smtp.auth","true");/** 发送服务器需要身份认证 **/ prop.setProperty("mail.smtp.timeou","3000");/** 发送邮件超时时间 **/ Session session = Session.getInstance(prop, passwordAuthentication()); Message message = new MimeMessage(session);/** 创建邮件对象 */ message.setFrom(new InternetAddress(USER_NAME)); /** 邮件发送者 */ message.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(to)); /** 邮件接受者 */// message.setRecipient(MimeMessage.RecipientType.CC,new InternetAddress(to)); /** 邮件接受者(抄送) */// message.setRecipient(MimeMessage.RecipientType.BCC,new InternetAddress(to)); /** 邮件接受者(密送) */ message.setSentDate(new Date()); /**设置显示的发件时间*/ message.setSubject("欢迎注册battle<a href=''>点击激活</a>"); message.setText("激动地址:http://www.test.com/test?test=123"); //message.setContent("<h1>请点击链接进行激活<a href='localhost:8080/test'>点击激活</a></h1>", "text/html;charset=utf-8"); Transport.send(message); } private static Authenticator passwordAuthentication() { return new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(USER_NAME, PASS_WORD); } }; }
阅读全文
0 0
- 使用JavaMail的Java邮件发送
- java 使用javamail发送邮件
- javaMail 的使用,java代码发送一份邮件
- 使用JavaMail发送邮件
- 使用JavaMail发送邮件
- 使用javamail发送邮件
- 使用javaMail发送邮件
- 使用JavaMail发送邮件
- 使用javaMail发送邮件
- 使用JavaMail发送邮件
- 使用javamail发送邮件
- 使用JavaMail发送邮件
- 使用javamail发送邮件
- 使用JavaMail发送邮件
- 使用JavaMail发送邮件
- 使用javamail发送邮件
- 使用JavaMail发送邮件
- 使用JavaMail发送邮件
- MyBatis由浅入深学习总结之二:MyBatis解决Java实体类和数据库表字段不一致方法总结
- MyBatis由浅入深学习总结之二:MyBatis解决Java实体类和数据库表字段不一致方法总结
- Genymotion启动报错:the virtual device got no ip address
- BZOJ1693: [Usaco2007 Demo]Asteroids
- 动手实践:在Windows上安装NumPy、Matplotlib、SciPy
- 使用JavaMail的Java邮件发送
- 高阶函数与与匿名函数
- (Android集成支付宝支付)react-native实现支付宝支付
- 程序员,30岁,如何趁 AI 浪潮突破年薪天花板?
- Fragment切换 隐藏 显示
- 敏捷测试的“要”与“不要”-- 朱少民
- 软件设计管理工具 visual paradigm 社区版
- 接口测试相关学习xml和json
- archlinux升级内核后virtualbox不能启动虚拟机