JavaWeb基础—邮件发送
Posted ---江北
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb基础—邮件发送相关的知识,希望对你有一定的参考价值。
一、JavaMail概述与入门
JavaMail-java提供的一组API,用来收发邮件 中间有个邮件服务器:
客户端发给邮件服务器,另外一收件客户端从邮件服务器下载(最稳的还是163,QQ有点不靠谱)
SMTP协议 port 25
SMTP的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。
它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。
SMTP 协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。
SMTP 服务器就是遵循SMTP协议的发送邮件服务器。SMTP认证,简单地说就是要求必须在提供了账户名
和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。增加 SMTP 认证的
目的是为了使用户避免受到垃圾邮件的侵扰。
SMTP[2] 已是事实上的E-Mail传输的标准。
POP协议 POP3邮局协议第三版 port 110
POP邮局协议负责从邮件服务器中检索电子邮件。
IMAP协议
互联网信息访问协议(IMAP)是一种优于POP的新协议。
(了解)teInet发邮件(BASE64 sun包下的,java javax的底层依赖,不建议使用,报warning)使用禁止的类略,百度。
使用JavaMail发送:第一步为导包,需要两个包:mail.jar_activation.jar
核心类
Session :与Connection类似,但不同于web的HttpSession 步骤偏多
MimeMessage :邮件对象
TransPort :用来发邮件
发带附件与不带附件(多部件主体)MimeMultiPart MimeBodyPart
示例:
package cn.itcaat.mail; import java.io.File; import java.io.IOException; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message.RecipientType; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import org.junit.Test; /** * 测试无附件的发邮件的演示 * @author jiangbei01 * */ public class Demo01 { @Test public void fun1() throws AddressException, MessagingException{ /* * 1.得到session */ Properties props = new Properties(); //主机名 props.setProperty("mail.host", "smtp.163.com"); //是否需要认证 props.setProperty("mail.smtp.auth", "true"); Authenticator auth = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { //返回值类型具有一般构造器 return new PasswordAuthentication("ttbeifen1", "tt2924"); } }; Session session = Session.getInstance(props, auth); //得到邮件对象 MimeMessage msg = new MimeMessage(session); //抄送暗送此处略 msg.setFrom(new InternetAddress("ttbeifen1@163.com"));//发件人 msg.setRecipients(RecipientType.TO, "775992759@qq.com");//收件人 msg.setSubject("这是来自DAY22的测试"); msg.setContent("炸鸡和啤酒", "text/html;charset=utf-8"); //发送 Transport.send(msg); } }
二、邮件组件的运用
apache-commons-email的使用请参考实用工具类随笔:http://www.cnblogs.com/jiangbei/p/7659886.html
jodd-mail由于未测试成功有待补充...
hutool也发布新版本了,可以更加简单的发送邮件了。
以上是关于JavaWeb基础—邮件发送的主要内容,如果未能解决你的问题,请参考以下文章