手把手教你实现Java发送邮件(1)-发送简单的文本

说明:本博客已经收藏至我的gitee中的code_demo仓库(点击此链接跳转)中,且gitee中有相应的代码~ 欢迎访问~~
不仅仅是code,还有一些通俗的讲解哦~

文章目录

  • 一、Java实现邮件发送
  • 二、Java发送邮件
    • Java实现纯文本邮件发送

一、Java实现邮件发送

一、邮件服务器与传输协议

  • 要在网络上实现邮件功能,必须要有专门的邮件服务器。这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。

  • SMTP服务器地址:一般是 smtp.xxx.com,比如163邮箱是smtp.163.com,qq邮箱是smtp.qq.com。

SMTP协议

通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器)。

POP3协议

通常把处理用户pop3请求(邮件接收请求)的服务器称之为POP3服务器(邮件接收服务器)。

二、Java发送邮件

在这里插入图片描述
使用到的jar包:

  • mail.jar
  • activation.jar

QQ邮箱需获取相应的权限:

QQ邮箱–>邮箱设置–>账户–>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 开启POP3/SMTP服务,然后获取16位授权码(注意不要将授权码泄露,一个账户可以拥有多个授权码)
在这里插入图片描述
注意事项:

  1. 要注意下授权码只能生成一次,如果想再看的话只能关掉然后再次重新开启。
  2. 红框里有两个可以选择,如果是第一个的话,POP3/SMTP服务,读取邮件之后邮件服务器就会删除该邮件,IMAP/SMTP服务的话,读取邮件之后邮件服务器仍然会保存邮件哦~

Java实现纯文本邮件发送

最终效果:在这里插入图片描述

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;/*** @Description* @Author yang_tao* @Date 2020-05-11 16:56*/
public class _01_Mail_Simple {private static final String USER = "你的邮箱"; // 发件人称号,同邮箱地址private static final String PASSWORD = "你的授权码"; // 如果是qq邮箱可以使户端授权码,或者登录密码/**** @param to 收件人邮箱* @param text 邮件正文* @param title 标题*//* 发送验证信息的邮件 */public static boolean sendMail(String to, String text, String title){try {//第一步:创建配置文件,保存并读取信息final Properties props = new Properties();// 1.设置用户是否需要验证props.put("mail.smtp.auth", "true");// 2.设置qq邮件服务器props.put("mail.smtp.host", "smtp.qq.com");// 发件人的账号props.put("mail.user", USER);//发件人的密码props.put("mail.password", PASSWORD);// 构建授权信息,用于进行SMTP进行身份验证Authenticator authenticator = new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {// 实现方法,传入发件方的邮箱地址和权限校验码String userName = props.getProperty("mail.user");String password = props.getProperty("mail.password");return new PasswordAuthentication(userName, password);}};//第二步:正式开始准备发送邮件// 使用环境属性和授权信息,创建邮件会话Session mailSession = Session.getInstance(props, authenticator);// 创建邮件消息MimeMessage message = new MimeMessage(mailSession);// 设置发件人String username = props.getProperty("mail.user");InternetAddress form = new InternetAddress(username);message.setFrom(form);// 设置收件人InternetAddress toAddress = new InternetAddress(to);message.setRecipient(Message.RecipientType.TO, toAddress);// 设置邮件标题message.setSubject(title);// 设置邮件的内容体,为防止乱码问题这里参数2将文本类型和字符编码设置message.setContent(text, "text/html;charset=UTF-8");// 获取连接对象,通过session对象获取transport对象// 发送邮件Transport.send(message);return true;}catch (Exception e){e.printStackTrace();}return false;}
}

单元测试:

import org.junit.Test;/*** @Description* @Author yang_tao* @Date 2020-05-11 18:56*/
public class _01_JavaWeb_Mail_test {/*** 测试带邮件发送*/@Testpublic void sendMailTest(){// 这个方法接收三个参数,第一个是收件人,第二个是邮件内容,第三个是邮件标题_01_Mail_Simple.sendMail("208820388@qq.com","你好,这是一封测试邮件,无需回复。","测试邮件");}
}

参考博文

  1. Java实现邮件发送

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/482681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

量化涌现:信息论方法识别多变量数据中的因果涌现

来源:集智俱乐部作者:Fernando E. Rosas, Pedro A. M. Mediano, Henrik J. Jensen等译者:潘佳栋审校:梁金编辑:邓一雪导语大量个体聚集起来,常常涌现出新的复杂结构。鸟儿聚集起来形成兼具灵活性与秩序的鸟群,大量神经元聚集产生强…

4.1_ 1_ 初识文件管理

4.1_ 1_ 初识文件管理

case函数,replace函数

(case 字段 when 数据1 then 输出1 when 数据2 then 输出2 when 数据3 then 输出3 else 其他数据输出一致 end) as 字段 replace(字段,原子字符串,新子字符串) as 字段 select username,(case rolewhen 0 then 班长when 1 then 课代表when 2 then 组长wh…

阿斯麦CEO:中国不太可能独立造出顶尖光刻机 但也别那么绝对

来源:世界先进制造技术论坛“中国不太可能独立复制(replicate)出顶尖的光刻技术,因为阿斯麦依赖于不懈的创新,以及整合只有从非中国供应商处才能获得的零部件。但我的意思并不是绝对不可能,因为中国的物理定…

2.42死锁的处理策略一预防死锁

2.42死锁的处理策略一预防死锁

《科学》:中国科学家揭示,人脑中间神经元多样性从何而来?

来源:学术经纬编辑:药明康德内容团队编辑 在我们的大脑皮层中,有两类神经元源自发育的端脑结构。除了兴奋性神经元,中间神经元是另一类重要的神经元,它们可以通过释放γ-氨基丁酸(GABA&#xf…

快速入门虚拟机+linux安装(附带视频)

配合视频食用更佳哦~ 01_虚拟机Linux 快速入门 02_手把手教你安装centos7(不会你来打我) 这是bai du yun 群链接,存放UP主视频中的那个“开箱即用”虚拟机文件压缩包 https://pan.baidu.com/s/4hwvNmIS 文章目录下载地址概念介绍关于虚拟机&a…

03_linux 常用命令(上)

声明:此文档中的部分内容来自于培训班笔记,如有侵权,请联系UP主,即刻删除视频。03_linux 常用命令(上) 配合视频食用更佳哦~(点击蓝色字样,查看up主录制的视频) 内容要…

多模态AI崛起,2022年人工智能5大发展趋势

来源:CSDNnews转自:中国机器人网前言国外一家专注于开源和堆栈技术新闻网站 TheNewStark 盘点出 2022 年值得人们期待的五个人工智能发展趋势。随着深度学习的开放,人工智能在几年中快速发展,尖端技术慢慢向普及应用到各行各业。以…

OpenStack组件——Keystone身份认证

1.keystone介绍 keystone 是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身份验证、令牌的发放和校验、服务列表、用户权限的定义等等。云环境中所有的服务之间的授权和认证都需要经过 keystone. 因此 keystone 是云…

1_RabbitMQ初入门入门Hello消费者+生产者

文章目录1_RabbitMQ初入门1.RabbitMQ的介绍1.工作原理&发送/接收消息的流程2. 为什么要使用消息队列?3.使用了消息队列有什么缺点?2.安装RabbitMQ3.入门程序Hello_消费者&生产者_1.导入依赖2.生产者1.设置连接信息2.获取connection(连…

《Nature》:衰老后的核糖体发生了哪些致病变化

来源:生物通研究发现,产生蛋白质的细胞装配线会随着年龄的增长而停滞,从而引发雪球效应,增加错误折叠蛋白质的产量。在人类中,成堆的错误折叠蛋白质会导致与年龄相关的阿尔茨海默病和帕金森病。衰老会损害核糖体有效合…

[转载]eXeScope 6.50本地溢出分析

作 者: humourkyo时 间: 2009-03-30,21:03链 接: http://bbs.pediy.com/showthread.php?t84975无聊逛了下http://www.milw0rm.com 看最近有什么ODAY没,顺便挑一个分析下玩玩。于是就看到了这个http://www.milw0rm.com/exploits/8270是eXeScope 6.50 Local Buffer O…

饶毅:中国脑计划是我见过的最差科学经费管理,中国猴计划应该缓行

左:饶毅 右:蒲慕明来源:饶议科学 作者:饶毅原标题:中国猴计划应该缓行在我国上上下下左左右右普遍对支持科学研究有广泛共识,在我国具备一定支持科学研究的经济条件的情况下,科技部正在推动最大…

2_RabbitMQ工作模式_Work queues_Publish/Subscribe_Routing_Topics_HeaderRpc

文章目录2_RabbitMQ工作模式1.Work queues2.Publish/Subscribe1.工作模式2.代码1.生产者1.指定消息队列相关消息2.建立连接&绑定队列3.发送消息完整代码:2.消费者1.指定消息队列相关消息2.建立连接&绑定队列3.实现消费方法&监听消息完整代码3.小结3.Rou…

1000亿美元!英特尔要在美国建世界最大芯片厂,美520 亿美元芯片法案接近敲定...

来源:新智元编辑:桃子 拉燕 时光1000亿美元芯片计划,要重振英特尔往日雄风!路透称,英特尔将投资200亿美元建设2家芯片制造工厂,并计划最终投资多达1000亿美元。新工厂的建设将于今年晚些时候开始&#xff0…

Vue 组件间通信六种方式

前言 组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用。一般来说,组件可以有以下几种关系: 如上图所示,A 和 B、B 和 C、B 和 D 都是父子关系,C …

vue-day01-vue模板语法

文章目录Vue 是什么?使用Vue将helloworld 渲染到页面上指令v-cloakv-textv-htmlv-pre**v-once**双向数据绑定v-modelmvvmv-onv-on事件函数中传入参数事件修饰符按键修饰符自定义按键修饰符别名小案例-简单计算器v-bind绑定对象绑定class绑定对象和绑定数组 的区别绑…

IEEE Spectrum调查:AI 的 6 种最坏情况

来源:AI科技评论编译:辛西娅审核:维克多对于人类社会,人工智能(AI)带来的最大威胁是什么?好莱坞科幻电影的“想象”提供了答案:它逐渐进化,获得人类思考能力,…