java Mail如何发送邮件
1.应用场景:在系统需要发送与用户相关的消息时,而用户不在线,可以采取发送邮件的方式,使用户了解最新的系统情况 或者发送验证码等验证场景
2.实验环境 主要使用mail.jar和activation.jar两个包
3.使用一份简单的邮件
public void sendMail() throws AddressException, MessagingException{
/*
* 1.得到session
*/
Properties properties=new Properties();
properties.setProperty("mail.host", "smtp.163.com");
properties.setProperty("mail.smtp.auth", "true");
//账户信息测试
Authenticator auth =new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("zhou_s1", "xxx");
//这里是账户名和密码
}
};
Session session =Session.getInstance(properties,auth);
/*
* 2.创建消息message
*/
MimeMessage message=new MimeMessage(session);
message.setFrom(new InternetAddress("zhou_s1@163.com"));//设置发件人
message.setRecipients(RecipientType.TO, "583350208@qq.com");//设置收件人
//message.setRecipients(RecipientType.CC, "teacher.z@qq.com");//设置抄送
//message.setRecipients(RecipientType.BCC, "583350208@qq.com");//暗送给谁
message.setSubject("这一份来自周松测试的垃圾邮件--javamail");
message.setContent("test test test !!!","text/html;charset=utf-8");
/*
* 3.发送
*/
Transport.send(message);
}
4.一份带有附件的邮件
public void sendMailMore() throws AddressException, MessagingException, IOException{
/*
* 1.得到session
*/
Properties properties=new Properties();
properties.setProperty("mail.host", "smtp.163.com");
properties.setProperty("mail.smtp.auth", "true");
//账户信息测试
Authenticator auth =new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("zhou_s1", "xxx");
}
};
Session session =Session.getInstance(properties,auth);
/*
* 2.创建消息message
*/
MimeMessage message=new MimeMessage(session);
message.setFrom(new InternetAddress("zhou_s1@163.com"));//设置发件人
message.setRecipients(RecipientType.TO, "583350208@qq.com");//设置收件人
message.setSubject("这是一份含有附件的邮件---测试使用--javamail");
/******************************************************/
/*
* 附件的主体流程 附件含有多个组成部分 简称多部件
*
*/
MimeMultipart list =new MimeMultipart();
//1.邮件主要内容 MimeBodyPart
MimeBodyPart part1 =new MimeBodyPart();
//1.1.内容
part1.setContent("一份含有附件的测试邮件", "text/html;charset=utf-8");
//1.2将主体添加到邮件中去
list.addBodyPart(part1);
//2.1.邮件附件里面的内容
MimeBodyPart part2 =new MimeBodyPart();
//2.2.附件
File file =new File("G:/JAVAtest/Merge.mp3");
part2.attachFile(file);
part2.setFileName(MimeUtility.encodeText("Merge.mp3"));
//2.3将主体添加到邮件中去
list.addBodyPart(part2);
//3.最后将多部件添加到消息中去
message.setContent(list);
//发送
Transport.send(message);
}
测试完毕!
java Mail如何发送邮件的更多相关文章
- Android使用Java Mail API发送邮件
最近在考虑为已经有的一个应用程序增加一个用户反馈的功能,用户可以通过反馈功能将用户的意见和建议.程序出现的问题以一种更符合用户习惯的方式反馈回来.网上也有一些实现好的反馈程序的服务,包括bug的提交. ...
- java mail 使用 gmail smtp 发送邮件
smtp 服务器:smtp.gmail.com 使用ssl的端口:465 用户名:username@gmail.com 密码:password** 基本配置没有问题,关键在于Google对安全性要求非 ...
- java mail使用中遇到的550类型错误
前言 首先,需要说明的是,本错误来自于一个简单的基于java mail的api程序,邮件服务器是163的SMTP,即smtp.163.com. 程序 需要说明一下,下面这个程序,是来自于网络上,本人为 ...
- Java使用javax.mail.jar发送邮件并同意发送附件
因为Java在开发网页上占有绝大优势.所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必定,网络安全一再安全我们须要把账号的安全级别提到更高.因此这些对于开发者也就成了必须掌握的技能!我一 ...
- 简单的java mail发送邮件实例
mail.jar ,commons-email-X.X.jar ,activation.jar ,log4j.jar 这四个jar,放进项目里 下载地址 http://www.oracle.com/ ...
- Spring Boot 揭秘与实战(七) 实用技术篇 - Java Mail 发送邮件
文章目录 1. Spring Boot 集成 Java Mail 2. 单元测试 3. 源代码 Spring 对 Java Mail 有很好的支持.因此,Spring Boot 也提供了自动配置的支持 ...
- 基于java mail实现简单的QQ邮箱发送邮件
刚学习到java邮件相关的知识,先写下这篇博客,方便以后翻阅学习. -----------------------------第一步 开启SMTP服务 在 QQ 邮箱里的 设置->账户里开启 S ...
- java mail Received fatal alert: handshake_failure java 无法发送邮件问题 java 发送qq邮件(含源码)
java 无法发送邮件问题 java 发送qq邮件 报错:java mail Received fatal alert: handshake_failure (使用ssl) javax.mail.M ...
- Android Java Mail与Apache Mail发送邮件对比
原文链接: 一.邮件简介 一封邮件由很多信息构成,主要的信息如下,其他的暂时不考虑,例如抄送等: 1.收件人:收件人的邮箱地址,例如xxx@xx.com 2.收件人姓名:大部分的邮件显示时都会显 ...
随机推荐
- Spark应用监控解决方案--使用Prometheus和Grafana监控Spark应用
Spark任务启动后,我们通常都是通过跳板机去Spark UI界面查看对应任务的信息,一旦任务多了之后,这将会是让人头疼的问题.如果能将所有任务信息集中起来监控,那将会是很完美的事情. 通过Spark ...
- Go Home Trash!垃圾分类 风险与对策
一.外部风险 政策风险 (1)税收风险 本项目同时牵涉教育以及公益领域,在国家大力支持垃圾分类.互联网.信息科技等高技术产业的发展的背景下,我们可以依照国家相关税收政策依法享受国家税收优惠与减免.本公 ...
- 页面单击按钮弹出modaldialog然后调用ajax处理程序获取数据,给父级页面控件赋值
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RefTopicList.asp ...
- Flink的Job启动TaskManager端(源码分析)
前面说到了 Flink的JobManager启动(源码分析) 启动了TaskManager 然后 Flink的Job启动JobManager端(源码分析) 说到JobManager会将转化得到 ...
- 多线程编程学习六(Java 中的阻塞队列).
介绍 阻塞队列(BlockingQueue)是指当队列满时,队列会阻塞插入元素的线程,直到队列不满:当队列空时,队列会阻塞获得元素的线程,直到队列变非空.阻塞队列就是生产者用来存放元素.消费者用来获取 ...
- 微信小程序那些令人眼泪汪汪的坑儿
前言 最近做了一个麻雀虽小,五脏俱全的微信小程序项目.一看就会,一用就废的小程序.有些坑真的坑的你两眼泪汪汪.我就爱干前人栽树后人乘凉的事儿,看到文章的你,也许是同道中人,相视一笑:亦或是小程序外围人 ...
- AC自动机 建立nlogn个AC自动机
String Set Queries 题意:给你3种操作,1.加入一个串到集合中. 2.删除集合中的某一个串 3.查询集合中的字符串在给定的字符串种出现几次.(同一个串可重复) 解法:建立多个AC自动 ...
- uva 796 C - Critical Links(tarjan求桥)
题目链接:https://vjudge.net/contest/67418#problem/C 题意:求出桥的个数并且按顺序输出 题解:所谓桥就是去掉这条边后连通块增加,套用一下模版就行. #incl ...
- Scrapy框架的下载与安装
一.下载scrapy 首先,如果安装了anaconda, 可以直接在terminal窗口中输入: conda install scrapy 在图示符中,输入y, 表示继续处理信息 二.验证 是否安装成 ...
- Salesforce LWC学习(七) Navigation & Toast
上一篇我们介绍了针对LWC中常用的LDS的适配的wire service以及@salesforce模块提供的相关的service,其实LWC中还提供其他的好用的service,比如针对导航相关的lig ...