使用JavaMail的Java邮件发送
2017-11-03 10:22
239 查看
简介:
当今时代,电子邮件在各大网站都是非常常见且应用非常的广泛,比喻在网站注册一个账号后,系统自动发送一个激活邮件,点击链接发送请求才能登录,以及通过邮件找回密码等等。本文将介绍使用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); } }; }
相关文章推荐
- 基于java使用JavaMail发送邮件
- JavaWeb中使用JavaMail实现发送邮件功能实例详解
- JAVA 使用JavaMail发送邮件(mail.jar和activtion.jar)
- javaMail 的使用,java代码发送一份邮件
- Android Java使用JavaMail API发送和接收邮件的代码示例
- 关于Java Web 使用JavaMail创建邮件和发送邮件
- java邮件发送的简单实现,使用javamail通过smtp协议发信
- Java程序中使用JavaMail发送带图片和附件的邮件
- Java使用JavaMail API发送和接收邮件的代码示例
- [JAVA100例]047、使用JavaMail发送邮件
- Java使用JavaMail发送邮件的方法
- JAVA邮件发送的简单实现,使用javamail通过smtp协议发信
- java 使用javamail发送邮件
- Android使用UncaughtExceptionHandler捕获全局异常 android获取手机信息大全Java追加文件内容使用JavaMail发送邮件OkHttp获取系统时间
- Java-使用JavaMail发送一封邮件给用户邮箱功能实现
- 使用javamail发送html格式邮件
- 最新javamail 使用方案,可以异步发送邮件
- JavaMail使用5 -- 发送邮件2 -- 发送HTML格式邮件
- [转载]javaMail Java实现邮件发送
- JAVA与JavaMail邮件发送