邮件发送
1.1传统邮件发送:
* 传统的邮件是通过邮局投递,从一个邮局到另一个邮局,最终到达用户的邮箱。
1.2电子邮件发送:
* 与传统邮件类似,它是从用户电脑的邮件软件(如outlook)发送到邮件服务器上,然后经过若干个邮件服务器的中转,到达对方邮件服务器上,收件方就可以用软件或浏览器来接收邮件。
- MUA(邮件软件,Mail User Agent)——>MTA(邮件服务器,Mail Transfer Agent)——>MTA——>MDA(邮件投递代理,Mail Delivery Agent)<——MUA
邮件一半到达MDA就不再动了,等收件人通过MUA或浏览器查看邮件即可
SMTP协议:发送电子邮件的协议
- Simple Mail Transport protocol:SMTP是一个建立在TCP之上的协议。
- 标准端口:25
加密端口:465/587。如果某个会话需要被加密的话,使用加密端口465/587
如果使用SMTP发送EMail:
- Java Mail API
- 无需关心SMTP协议原理。
使用Java Mail API有三个部分
# 创建session
Session session = Session.getInstance(props,new Authenticator(){...});
# 创建manager对象
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("from@email.com"));
message.setRecipient(Message.RecipientType.TO, new IntenetAddress("to@email.com"));
message.setSubject("RE:how to use JavaEmail","UTF-8");
message.setText("blablabla...","UTF-8");
# 发送邮件
Transport.send(message);
新建maven工程,pom.xml导入依赖
<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>