java实现表单注册邮箱验证功能
程序员文章站
2022-07-08 14:47:15
...
一.前言:
- 学习技术对于我们来说是无止境的,只有不断地学习,才能适应技术的快节奏迭代.
二.具体操作(我用的是163邮箱,maven项目)
1.在邮箱中开启 POP3/SMTP/IMAP
2.设置授权码(163邮箱授权码是没有时效性的)
3.配置pom.xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>`
4.主方法(这里只是测试,具体该怎么调用根据自己的需求来进行修改)
import com.sun.net.ssl.internal.ssl.Provider;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.security.Security;
import java.util.Date;
import java.util.Properties;
public class MailSender {
private static MimeMessage message;
public static void main(String[] args) throws MessagingException {
Security.addProvider(new Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
//163邮箱服务器
String smtpHost="smtp.163.com";
//邮箱用户名,即163账号
final String username = "这里填发送端163邮箱账号";
//邮箱授权码
final String password = "这里填邮箱的授权码";
//要发送到的邮箱
String to = "这里填目标邮箱";
//自己的邮箱
String from = "这里填发送端163邮箱账号";
Transport transport;
Properties props = new Properties();
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "994");
props.setProperty("mail.smtp.socketFactory.port", "994");
props.setProperty("mail.smtp.auth", "true");
props.put("mail.smtp.host",smtpHost);
props.put("mail.smtp.username", username);
props.put("mail.smtp.password", password);
Session session = Session.getDefaultInstance(props, new Authenticator() {
//身份认证
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
InternetAddress[] addresses = {new InternetAddress(to)};
message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO,addresses);
//邮件标题
message.setSubject("注册验证");
message.setSentDate(new Date());
//编写内容
message.setText("这里是发送内容");
transport = session.getTransport("smtp");
transport.connect(smtpHost, username, password);
transport.send(message);
System.out.println("验证发送成功");
}
}
-
以上就是邮箱验证的相关操作,如果是使用其他的邮箱只需修改端口号和账号授权码即可,达到的效果如下图
- 注意:网易163邮箱一封邮件最多发送给 40 个收件人 , 每天发送限额为 50 封。