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. ...
随机推荐
- Arduino字符串笔记
Arduino里的字符串笔记 1 字符串转数字 String To Int /* 使用String.toInt()将字符串转为数字示例 */ String inString = "" ...
- zoj3494 BCD Code(AC自动机+数位dp)
Binary-coded decimal (BCD) is an encoding for decimal numbers in which each digit is represented by ...
- hdu 1517 Multiplication Game
题意: 用整数p乘以2到9中的一个数字.斯坦总是从p = 1开始,做乘法,然后奥利乘以这个数,然后斯坦,以此类推.游戏开始前,他们画一个整数1 < n < 4294967295,谁先到达p ...
- Codeforces Round #544 (Div. 3) E. K Balanced Teams (DP)
题意:有\(n\)个人,每个人的能力值是\(a_i\),现在你想将这些人分成\(k\)组(没必要全选),但是每组中最高水平和最低水平的人的能力差值必须\(\le 5\),问最多能选多少人. 题解:想了 ...
- hdu5437 Alisha’s Party
Problem Description Princess Alisha invites her friends to come to her birthday party. Each of her f ...
- HDU 3605 Escape 最大流
题意: 如果这是2012年世界末日怎么办?我不知道该怎么做.但是现在科学家们已经发现,有些星球上的人可以生存,但有些人却不适合居住.现在科学家们需要你的帮助,就是确定所有人都能在这些行星上生活.输入多 ...
- 3.使用nginx-ingress
作者 微信:tangy8080 电子邮箱:914661180@qq.com 更新时间:2019-06-25 13:54:15 星期二 欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程 ...
- 用python写的一个自动卸载python包的脚本
import osplist=os.popen("pip list") # 执行windows cmd命令,获取所有包package列表,并获取返回结果到plist#跳过第1,2行 ...
- 【原】无脑操作:Centos 7.6 + MariaDB + Rsyslog + LogAnalyzer环境搭建
背景: 网络安全法第三章第二十一条明确规定"采取监测.记录网络运行状态.网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月". 为了满足合规性的要求,应当建设相应的日 ...
- WIN10修改应用的默认打开方式
如图所示: 选中想要替换成为的应用程序, 在其中勾选想设默认应用的文件类型即可.