javaMail (java代码发送邮件)
第一在邮件账户设置开启以下两个

需要发送短信获取 授权码。
代码如下:
package com.hjb.javaMail; import javax.mail.*;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties; public class Mail { /**
* 1、SMTP 服务器的端口 (不同的服务器可能会有不同端口号)
* 2、会话对象,用于和邮件服务器交互
* 3、邮件对象
*/ public static final String smtpPort = "465"; private Session session; private MimeMessage message; public Mail() { } /**
* 初始化方法
*
* @param myEmailSMTPHost 发件人邮箱 SMTP 地址
* @param agreement 使用的协议
* @param auth 是否需要请求认证
*/
public Mail(String myEmailSMTPHost, String agreement, String auth) throws NoSuchProviderException { // 配置参数
Properties properties = new Properties(); properties.setProperty("mail.transport.protocol", agreement); properties.setProperty("mail.smtp.host", myEmailSMTPHost); properties.setProperty("mail.smtp.auth", auth); properties.setProperty("mail.smtp.port", smtpPort); properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); properties.setProperty("mail.smtp.socketFactory.fallback", "false"); properties.setProperty("mail.smtp.socketFactory.port", smtpPort); // 获取一个邮件会话对象
session = Session.getInstance(properties); // 是否需要开启 debug 模式,开启后会输出详细的 log 信息
session.setDebug(true); // 创建一封邮件
message = new MimeMessage(session);
} /**
* 设置邮件内容
*
* @param myEmailAccout 发件人邮箱
* @param addresseeEmail 收件人邮箱
* @param emailSubject 邮件主题
* @param emailContent 邮件正文(PS:可以是 HTML 标签形式)
* @return MimeMessage 邮件
* @throws Exception
*/
public MimeMessage setEmail(String myEmailAccout, String addresseeEmail, String emailSubject, String emailContent) throws MessagingException {
message.setFrom(myEmailAccout); // 第一个参数 以 收件人、抄送、密送 的形式,具体意思请自行百度(手动捂脸)
message.setRecipients(Message.RecipientType.TO, addresseeEmail); message.setSubject(emailSubject, "UTF-8"); message.setContent(emailContent, "text/html;charset=UTF-8"); // 邮件发送时间
message.setSentDate(new Date()); // 保存设置内容
message.saveChanges(); return message;
} /**
* 发送邮件
*
* @param myEmailAccout 发件人邮箱
* @param myEmailPassword 发件人邮箱授权码(163 邮箱的叫做独立密码)
* @throws MessagingException
*/
public void sendOut(String myEmailAccout, String myEmailPassword) throws MessagingException {
// 第一步:通过邮件会话对象(Session)获取邮件传输对象
Transport transport = session.getTransport(); // 第二步:进行连接
transport.connect(myEmailAccout, myEmailPassword); // 第三步:发送邮件,第一个参数是:邮件对象(MimeMessage),第二个参数获取保存设置后的邮件内容
transport.sendMessage(message, message.getAllRecipients()); // 第三步:关闭连接。
transport.close();
}
}
测试代码:
package com.hjb.javaMail;
import com.hjb.javaMail.Mail;
import javax.mail.MessagingException;
public class TestMail {
public static void main(String[] args) throws MessagingException {
String myEmailAccount = "发件人@qq.com";
String myEmailPassword = "gciljwmywhyzbcdj"; //这个就是授权码
// 每个邮箱的地址有所不同
String myEmailSMTPHost = "smtp.qq.com";
String addresseeEmail = "收件人@qq.com";
String agreement = "smtp";
String auth = "true";
String emailSubject = "元宵节快乐";
String emailContent = "<h3>fsdafdsfsdaf</h3>";
Mail mail = new Mail(myEmailSMTPHost, agreement, auth);
mail.setEmail(myEmailAccount, addresseeEmail, emailSubject, emailContent);
mail.sendOut(myEmailAccount, myEmailPassword);
}
}
效果图

javaMail (java代码发送邮件)的更多相关文章
- JAVA代码发送邮件示例和解释
下载和上传附件.发送短信和发送邮件,都算是程序中很常用的功能,之前记录了文件的上传和下载还有发送短信,由于最近比较忙,邮件发送的功能就没有时间去弄,好在昨晚终于走通代码成功以163邮箱发送邮件到qq邮 ...
- JAVA代码发送邮件示例和解释(二)
之前有使用过一次在程序中发邮件的功能,也写了一篇相关的笔记,当时使用的是163邮箱,经过测试多个163账号都是可行的.但是最近把账号换成中国移动@chinamobilesz.com这种结尾的时候,却一 ...
- 使用Java代码发送邮件
- java后台代码发送邮件
1:安装 eyoumailserversetup 易邮邮件服务器 注册账号 2:安装Foxmail 登录以后会有个还原页面 3:测试 4:java 代码编写 配置文件: mail.host=http ...
- Java发送邮件--web.xml配置,Java代码配置
前言:我目前总结的使用java发送邮件的方式有两种,分别是在spring框架xml配置文件使用bean标签,另一种方法是把发送功能封装成一个对象,废话不多说上代码, 边看代码边讲解,希望对需要的人能有 ...
- Java JavaMail通过SMPT发送邮件
概述 本讲讲述如何使用JavaMail工具包,通过SMPT协议,在Java代码中发送邮件. 一.JavaMail简介 JavaMail API提供了一个独立于平台且与协议无关的框架来构建邮件和消息传递 ...
- JavaMail SMTP服务器发送邮件程序示例 java通过dns服务器解析ip地址
/** * JavaMail SMTP服务器发送邮件程序示例 * 扮演SMTP服务器角色与邮件客户端软件最大的区别就是: * SMTP服务器需要解析不同接收人邮件地址主机名对应的SMTP服务器主机名 ...
- Spring进阶—如何用Java代码实现邮件发送(一)
相关文章: <Spring进阶—如何用Java代码实现邮件发送(二)> 在一些项目里面如进销存系统,对一些库存不足发出预警提示消息,招聘网站注册用户验证email地址等都需要用到邮件发送技 ...
- (三)集成 JavaMail ,实现异步发送邮件
集成 JavaMail ,实现异步发送邮件 1.JavaMail的核心API 1.1 API功能图解 1.2 API说明 1.2.1 Message 类: 1.2.2 Transport 类 1.2. ...
随机推荐
- Java ArrayList源码分析(含扩容机制等重点问题分析)
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- CENTOS7 使用YUM安装MARIADB
现在在服务器配置数据库,一般都会直接配置MariaDB,它可以实现mysql数据库连接. 1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server ...
- 2020牛客暑期多校训练营(第二场)Fake Maxpooling
传送门:Fake Maxpooling 题意:给出矩阵的行数n和列数m,矩阵 Aij = lcm( i , j ) ,求每个大小为k*k的子矩阵的最大值的和. 题解:如果暴力求解肯定会t,所以要智取 ...
- 【51nod1674】区间的价值 V2(算法效率--位运算合并优化+链表实现)
题目链接: 51nod1674 题意:规定一个区间的价值为这个区间中所有数and起来的值与这个区间所有数or起来的值的乘积.现在l有一个 N 个数的序列,问所有n*(n+1)/2个区间的贡献的和对1 ...
- Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) C. Bouncing Ball (后缀和,枚举)
题意:有一长度为\(n\)的平台,平台有的位置有木桩,可以使小球弹起来,小球必须从第\(p\)个位置开始,而且每次都会向右弹\(k\)个单位,然后有的位置是没有木桩的,你可以在这些的空的位置放一个木桩 ...
- leetcode 122 123 309 188 714 股票买卖 动态规划
这类问题有一个通法 https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iii/solution/yi-ge-tong-y ...
- select用法&原理详解(源码剖析)(转)
今天遇到了在select()前后fd_set的变化问题,查了好久终于找到一个有用的帖子了,很赞,很详细!!原文链接如下: select用法&原理详解(源码剖析) 我的问题是: 如下图示:在se ...
- C# 类 (6) -继承
继承 定义类的时候,public class Dog:Animal 表示 Dog 这个类是 继承自 Animal,冒号后面的是它的基类 继承后 的Dog 类,当调用Dog.Great() 的时候输出的 ...
- JavaScript事件:事件处理模型(冒泡、捕获)、取消冒泡、阻止默认事件
(一)事件处理模型---事件冒泡.捕获 (1)事件冒泡 24 <body> 25 <div class="warpper"> 26 <div clas ...
- K8s(一)----容器编排工具基础概念
kubernetes(k8s)容器编排工具基础概念 Kubernetes (K8s): 中文社区:https://www.kubernetes.org.cn/replication-controlle ...