大家好,又见面了,我是你们的朋友全栈君。
需求:用户注册时给邮箱发送邮件,得到验证码并填写,进行激活邮箱。
有基础的可以直接看下篇
JavaWeb实现qq邮箱验证(二):https://blog.csdn.net/BlackPlus28/article/details/85114001
首先一步一步来写,这篇是以java简单的发送邮件
一、设置发件人的邮箱和密码等
// 下面需要补充的是,你自己的邮箱和授权码还有收件人邮箱。
// 发件人的邮箱
public static String emailAccount = "xxxxxxxxx";
// 发件人邮箱密码(有的是授权码)
public static String emailPassword = "xxxxxxxxx";
// 发件人邮箱服务地址(这里以qq邮箱为例) 网易是:smtp.163.com
public static String emailSMTPHost = "smtp.qq.com";
// 收件人邮箱
public static String receiveMailAccount = "xxxxxxxxx";
java邮箱的授权码去哪找,看下图(已经开启的直接跳过),直接开启即可。网易同样道理。为什么我使用qq邮箱,没使用网易,下篇发送邮件再说。
二、创建一封邮件(发件人、收件人、邮件内容)
/**
* @param session
* @param sendMail
* @param receiveMail
* @param html
* @throws MessagingException
* @throws IOException
* cc:抄送、 Bcc:密送、 To:发送
*/
public static MimeMessage creatMimeMessage(Session session,String sendMail,String receiveMail,String html) throws MessagingException, IOException {
// 1、创建一封邮件对象
MimeMessage message = new MimeMessage(session);
// 2、From:发件人
message.setFrom(new InternetAddress(sendMail, "发件人昵称", "UTF-8"));
// 3、To:收件人(可以增加多个收件人:抄送或者密送)
message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, "张三", "UTF-8"));
// 4、Subject:邮件主题
message.setSubject("邮箱验证","UTF-8");
// 5、Content:邮件正文(可以使用Html标签)
message.setContent("邮箱验证","text/html;charset=UTF-8");
// 6、设置发送时间
message.setSentDate(new Date());
// 7、保存设置
message.saveChanges();
// 8、将该邮件保存在本地
OutputStream out = new FileOutputStream("D://MyEmail" + UUID.randomUUID().toString() + ".eml");
message.writeTo(out);
out.flush();
out.close();
return message;
}
三、发送邮件
// javaMail邮件发送
public static void main(String[] args) {
try {
// 1、创建参数配置,用于连接邮箱服务器的参数配置
Properties props = new Properties();
// 开启debug调试
props.setProperty("mail.debug", "true");
// 发送服务器需要身份验证
props.setProperty("mail.smtp.auth", "true");
// 设置右键服务器的主机名
props.setProperty("mail.host", emailSMTPHost);
// 发送邮件协议名称
props.setProperty("mail.transport.protocol", "smtp");
// 2、根据配置创建会话对象,用于和邮件服务器交互
Session session = Session.getInstance(props);
// 设置debug,可以查看详细的发送log
session.setDebug(true);
// 3、创建一封邮件
MimeMessage message = creatMimeMessage(session, emailAccount, receiveMailAccount, " ");
// 4、根据session获取邮件传输对象
Transport transport = session.getTransport();
// 5、使用邮箱账号和密码连接邮箱服务器emailAccount必须与message中的发件人邮箱一致,否则报错
transport.connect(emailAccount,emailPassword);
// 6、发送邮件,发送所有收件人地址
transport.sendMessage(message, message.getAllRecipients());
// 7、关闭连接
transport.close();
} catch (UnsupportedEncodingException | MessagingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
效果图展示:
到这里,通过java发送qq邮件就已经完成了。
这个只是java版本的,后面我会把这个封装起来,做成javaUtils,javaWeb项目可以直接使用。上面会涉及到发送邮箱的jar包,我放到下面的链接里。快去测试一下你的Demo。
邮箱注册进阶篇(封装成工具类):https://blog.csdn.net/BlackPlus28/article/details/85114001
JavaWeb实现qq邮箱验证(二):https://blog.csdn.net/BlackPlus28/article/details/85114001
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/147212.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...