基于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


猜你喜欢
- 本文实例为大家分享了C++实现幸运大抽奖的具体代码,供大家参考,具体内容如下程序效果:#ifndef DIALOG_H#define DIA
- 1.下载AndroidStudioAndroidStudio官网下载地址:http://developer.android.com/intl
- 本文实例讲解了Android实现图片文字轮播特效的详细代码,分享给大家供大家参考,具体内容如下图片轮播是类似知乎日报上的一个轮播效果,如下图
- 随着手机性能的提高,以及iOS和Android两个平台的普及,更多的App都会选择两个平台的App都进行开发,在有些时候,为了更加快速的开发
- java中的前加加++和后加加++,有很多人搞的很晕,不太明白!今天我举几个例子说明下前++和后++的区别!其实大家只要记住一句话就可以了,
- 本文实例讲述了Android利用jsoup解析HTML页面的方法。分享给大家供大家参考,具体如下:这节主要是讲解jsoup解析HTML页面。
- 本文讲述的是Android中RelativeLayout、FrameLayout的用法。具体如下:RelativeLayout是一个按照相对
- 前言一个说难不难,说简单竟看不出来是哪里问题的一个bug。是的 可能自己能力和经验尚浅无法识别,下面你们能否用火眼金睛一眼让bug原形毕露(
- 最近在公司,项目不是很忙了,偶尔看见一个兄台在CSDN求助,帮忙要一个自定义的渐变色进度条,我当时看了一下进度条,感觉挺漂亮的,就尝试的去自
- init和clinit区别①init和clinit方法执行时机不同init是对象构造器方法,也就是说在程序执行 new 一个对象调用该对象类
- 代码背景一个班级,有两类学生,A类:不学习,玩,但是玩的东西不一样,有的是做游戏,有的是看电视B类:放哨的学生,专门看老师的动向,如果老师进
- 本文实例讲述了Android编程设计模式之抽象工厂模式。分享给大家供大家参考,具体如下:一、介绍抽象工厂模式(Abstract Factor
- Android自定义短信验证码组件,供大家参考,具体内容如下效果图1.布局实现因为要禁用光标,所以我用TextView代替了EditText
- Spring Boot怎么实现热部署在Spring Boot实现代码热部署是一件很简单的事情,代码的修改可以自动部署并重新热启动项目。1、引
- 需求使用 spring-boot 项目开发中,项目启动时“非常”慢的。如果每次修改代码或静态资源文件后都需要重新启动项目,这是多么痛苦的事。
- Elasticsearch简介Elasticsearch是什么?它能干什么?Elasticsearch(以下称之为ES)是一款基于Lucen
- 本文实例为大家分享了Java分形绘制山脉模型的具体代码,供大家参考,具体内容如下如何绘制一个山脉构思设计任意选取三个点,选取一个范围和一个比
- Android N 可以同时显示多个应用窗口。 在手机上,两个应用可以在“分屏”模式中左右并排或上下并排显示。例如,用户可以 在上面窗口聊Q
- 本文为大家分享了C#导入导出Excel数据的具体代码,供大家参考,具体内容如 * :对于实体类对象最好新建一个并且继承原有实体类,这样可以将类
- 在C# 的应用程序开发中, 我们经常要把UI线程和工作线程分开,防止界面停止响应, 同时我们又需要在工作线程中更新UI界面上的控件。但直接访