基于JavaMail的Java邮件发送
作者:Sparks_t 发布时间:2022-10-30 18:56:56
标签:Java,Mail,邮件
邮件绑定功能
【需求】
1、 用户注册时,输入邮箱
2、 通过Javamail技术,向用户邮箱发送一封祝贺邮件
1、javamail发送邮件
1.1、简介
什么是javamail?
1.2、工具类
首先从哪个邮箱发出邮件,所以得发送邮件账号支持 程序发送邮件
第一步:配置网易 开启客户端授权码
(1)授权码申请:
选中POP3/SMTP服务和IMAP/SMTP服务,点击开启,如果已开启,会显示关闭
授权码就是JAVA代码登录邮箱的密码:MQKFLKEKMUHOKVPS
第二步:在mail-demo01项目中,配置pom.xml 添加javamail的坐标。
<!-- 导入javamail的坐标 -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
第三步:根据需要,编辑发送邮件正文
步骤:
1 设置邮件发送的属性
2 设置主机地址
3 设置是否打开验证
4 创建链接
5 创建邮件
6 设置发送者
7 设置接受者
8 设置标题
9 设置正文
10 坐火箭
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
import java.util.Properties;
public class MailUtil {
public static String smtp_host = "smtp.163.com"; // 网易
public static String username = "222@163.com"; // 邮箱
public static String password = "q7w8e9a4s5d6"; // 授权码(登录邮箱-->设置-->邮箱安全设置-->客户端授权密码),这里不是邮箱的密码,切记!
public static String from = "222@163.com"; // 来源邮箱,使用当前账号
public static void sendMail(String to, String subject, String text) throws Exception {
// 1 准备发送邮件需要的参数
Properties props = new Properties();
// 设置主机地址 smtp.qq.com smtp.126.com smtp.163.com
props.put("mail.smtp.host", smtp_host);
// 是否打开验证:只能设置true,必须打开
props.put("mail.smtp.auth", true);
// 2 连接邮件服务器
Session session = Session.getDefaultInstance(props);
// 3 创建邮件信息
MimeMessage message = new MimeMessage(session);
// 4 设置发送者
InternetAddress fromAddress = new InternetAddress(from);
message.setFrom(fromAddress);
// 5 设置接收者
InternetAddress toAddress = new InternetAddress(to);
// to:直接接收者 cc:抄送 bcc暗送
message.setRecipient(RecipientType.TO, toAddress);
// 6 设置主题
message.setSubject(subject);
// 7 设置正文
message.setText(text);
// 设置HTML方式发送
//message.setContent(text, "text/html;charset=utf-8");
// 8 发送:坐火箭
Transport transport = session.getTransport("smtp");// 参数不能少,表示的是发送协议
// 登录邮箱,此处的密码是授权码
transport.connect(username, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
System.out.println("ok");
}
public static void main(String[] args) {
try {
MailUtil.sendMail("333@qq.com", "激活测试", "test");
} catch (Exception e) {
e.printStackTrace();
}
}
}
1.3、工具类测试
使用main方法进行测试。
public static void main(String[] args) {
try {
MailUtil.sendMail("333@qq.com", "激活测试", "test");
} catch (Exception e) {
e.printStackTrace();
}
}
2、客户注册时,发送祝贺邮件
来源:https://blog.csdn.net/weixin_45752540/article/details/120684315
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- spring注入枚举类型作为参数//定义枚举类型public enum ReportType { MONTH,WE
- 之前在Spring Boot启动过程(二)提到过createEmbeddedServletContainer创建了内嵌的Servlet容器,
- 目录1、下面的代码运行的结果是:2、下面有关java实例变量,局部变量,类变量和final变量的说法,错误的是?3、执行如下代码段后,变量s
- 摘要:其实两种方法归结起来看还是一种,都是利用Thread的构造器进行创建,区别就是一种是无参的,一种是有参的。一、继承Thread线程类:
- goto在Java中是一个保留字,但在语言中并没有用到它;Java没有goto。但是,Java也能完成一些类似于跳转的操作,主要是依靠:标签
- 具体可见http://developer.android.com/tools/debugging/ddms.html。 DDMS为IDE和e
- 一、饿汉式单例类public class Singleton { privat
- 这篇文章主要介绍了JDBC自定义连接池过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参
- 又忙了一周,事情差不多解决了,终于有可以继续写我的博客了(各位看官久等了)。这次我们来谈一谈Java里的一个很有意思的东西——回调。什么叫回
- 首先给出一段代码:public class AslistMethod { public static void main(String[]
- 类与对象:类是抽象的数据类型,对象是抽象的数据类型的具体化。使用new 关键字创建对象,默认初始化为null一个项目只存在一个main方法,
- Spring spring-context-indexer依赖<dependencies> <d
- 本文介绍Android中的5种数据存储方式。数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是
- java语言里包含了许多对设计模式的直接支持,如command模式,agent模式,observer模式等。虽然java提供的对
- 问题背景: 我要在一个表单里同时一次性提交多名乘客的个人信息到SpringMVC,前端HTML和SpringMVC Controller里该
- 概述java移位符主要包括3种:运算符名称>>左移运算符<<有符号右移运算符<<<无符号右移运算符
- 摘要:这个问题算是老生常谈了,我也是一段时间没弄过了,所以感觉有些忘了,就记录一下。一、后端通过shiro在session中存储数据://
- 简介我们在开发web应用的时候,有时候为了适应浏览器大小的调整,需要动态对页面的组件进行位置的调整。这时候就会用到flow layout,也
- 目录环境准备1.数据库操作1.1获取所有数据库1.2获取指定库的所有集合名1.3.删除数据库2.文档操作2.1插入文档2.2查询文档2.3分
- 一、链表的介绍什么是链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结