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. ...
随机推荐
- Hive创建HBase,ES外部表
1.创建HBase外部表 CREATE EXTERNAL TABLE `ods_women`( `rowkey` string COMMENT 'from deserializer', `articl ...
- Eclipse中配置Junit
在要使用Junit的project名上,点击properties-->Java Build Path-->Libraries,点击Add Library 选择Junit 选择Junit 4 ...
- KMP:补齐循环节
首先要明白:如果一个串需要至少添加x(x>=0)个字符才能是有>=2个循环节的串,那么我可以只在串末尾添加,不需要去串头添加.(比如串cabc,循环节是abc,我可以在尾部添加ab即可.) ...
- Codeforces Round #656 (Div. 3) C. Make It Good
题目链接:https://codeforces.com/contest/1385/problem/C 题意 去除一个数组的最短前缀使得余下的数组每次从首或尾部取元素可以排为非减序. 题解一 当两个大数 ...
- Educational Codeforces Round 94 (Rated for Div. 2) A. String Similarity (构造水题)
题意:给你一个长度为\(2*n-1\)的字符串\(s\),让你构造一个长度为\(n\)的字符串,使得构造的字符串中有相同位置的字符等于\(s[1..n],s[2..n+1],...,s[n,2n-1] ...
- Java基础(第二期)
数据类型扩展以及面试题讲解 整数拓展:进制 int i=10; int i2=010; //八进制0 int i3=0x10; //十六进制0x 0~9 A~F 16 相关进制转换自行学习,用的不多 ...
- 向 3D 世界迈出一小步
前言 OpenGL 的学习资料很多,一个是比较著名的 OpenGL 红宝书<OpenGL 编程指南>,可以在这里 http://opengl-redbook.com/ 下载该书配套的源代码 ...
- MySQL中为避免索引失效所需注意的问题
一.索引介绍 二.索引的优势与劣势 1.优势 类似于书籍的目录索引,提高数据检索的效率,降低数据库的IO成本. 通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗. 2.劣势 实际上索引也 ...
- spring再学习之AOP事务
spring中的事务 spring怎么操作事务的: 事务的转播行为: 事务代码转账操作如下: 接口: public interface AccountDao { //加钱 void addMoney( ...
- Leetcode(15)-三数之和
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可以包含重复的三元组. ...