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. ...
随机推荐
- 封装打包Python脚本
1.前言 封装打包Python的好处,节省了安装各种各样包依赖的问题,同时可以加强我们代码隐私的安全性,这里我的演示环境是Python3.6 ,CentOS7的系统,同时打包工具采用pyinstall ...
- Linux下统计CPU核心数量
首先第一步,cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 45 model name ...
- 阿里新晋 CNCF TOC 委员张磊:“云原生”为什么对云计算生态充满吸引力?
简介: 美国当地时间 2021 年 2 月 2 日,全球顶级开源社区云原生计算基金会(Cloud Native Computing Foundation,简称 CNCF)正式宣布其新一届技术监督委员会 ...
- JavaScript——浏览器检查
遍历opera中的所有方法
- Light Bulb ZOJ - 3203 三分
三分: 和二分非常类似的一个算法,与二分不同的是 二分是单调的,而三分是一个先增后减或者先减后增 三分可以求出峰值. 注意三分一定是严格单调的,不能有相等的情况. 讲个例题: 题目 题意: 一个人发现 ...
- httpclient几种请求方式
一.httpclient 模拟get请求,并获取cookie信息 public class MyCookiesForGet { private String url; //用来读取.propertie ...
- word2vector论文笔记
背景 很多当前的NLP系统和技术都把单词像ont-hot一样当做原子性的一个概念去对待,单纯就是一个索引,无法表示词之间的相似性.原因就是往往一个简单的.鲁棒的.可观测的模型在海量数据集上的学习效果要 ...
- MySQL 语句及其种类
DDL(Data Definition Language) DDL(Data Definition Language),数据定义语言 CREATE:创建数据库和表等对象 DROP:删除数据库和表等对象 ...
- 1076D Edge Deletion 【最短路】
题目:戳这里 题意:求出1到所有点的最短路径后,把边减到小于等于k条,问保留哪些边可以使仍存在的最短路径最多. 解题思路:这题就是考求最短路的原理.比如dijkstra,用优先队列优化后存在队列中的前 ...
- Objective C & Swift & iOS & App
Objective C & Swift & iOS & App https://www.runoob.com/ios/ios-objective-c.html https:// ...