在实现用户发送邮件之前,我们先对电子邮箱的基本概念做一些了解。
一、电子邮件
1. 邮件服务器
1.要在 Internet 上提供电子邮件功能,必须有专门的电子邮件服务器。
例如:现在 Internet 很多 提供邮件服务的厂商:sina、sohu、163 等等他们都有自己的邮件服务器。
2.这些服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投 递到邮件接收者的电子邮箱中。
3.邮件服务器,按照提供的服务类型,可以分为发送邮件的服务器我接收邮件的服务器。
2. 电子邮箱
电子邮箱(E-mail 地址)的获得需要在邮件服务器上进行申请 ,确切地说,电子邮箱其实 就是用户在邮件服务器上申请的一个帐户。用户在邮件服务器上申请了一个帐号后,邮件 服务器就会为这个帐号分配一定的空间,用户从而可以使用这个帐号以及空间,发送电子 邮件和保存别人发送过来的电子邮件。
3. 邮件协议
SMTP 协议-发邮件协议
a. 全称为 Simple Mail Transfer Protoco(l 简单邮件传输协议),它定义了邮件客户端软件与 SMTP 服务器之间、以及两台 SMTP 服务器之间的通讯规则。
b. 端口号:25
POP3 协议-收邮件协议
a. 全称为 Post Office Protocol(邮局协议),它定义了邮件客户端软件与 POP3 服务器的通讯规则。
b. 端口号:110
二、 发送邮件
1. 发送邮件的流程
2. 代码实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
package com.store.utils; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message; 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 javax.mail.internet.MimeMessage.RecipientType; public class MailUtils { public static void sendMail(String email, String emailMsg) throws AddressException, MessagingException { // 1.创建一个程序与邮件服务器对话对象 Session Properties props = new Properties(); //设置发送的协议 //props.setProperty("mail.transport.protocol", "SMTP"); //设置发送邮件的服务器 //props.setProperty("mail.host", "smtp.126.com"); //props.setProperty("mail.smtp.auth", "true");//指定验证为true //创建验证器 Authenticator auth = new Authenticator() { public PasswordAuthentication getPasswordAuthentication() { //设置发件人的账号和密码 return new PasswordAuthentication( "admin" , "admin@store.com" ); } }; Session session = Session.getInstance(props, auth); // 2.创建一个Message,它相当于是邮件内容 Message message = new MimeMessage(session); //设置发送者 message.setFrom( new InternetAddress( "admin@store.com" )); //设置发送方式与接收者 message.setRecipient(RecipientType.TO, new InternetAddress(email)); //设置邮件主题 message.setSubject( "这是我们的第一份邮件" ); //设置邮件内容 message.setContent( "哈哈,你到我的商城注册了" , "text/html;charset=UTF-8" ); // 3.创建Transport,用于将邮件发送 Transport.send(message); } public static void main(String[] args) throws AddressException, MessagingException { MailUtils.sendMail( "aaa@store.com" , "abcdefg" ); } } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/weixin_44270855/article/details/104516927