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如何发送邮件的更多相关文章

  1. Android使用Java Mail API发送邮件

    最近在考虑为已经有的一个应用程序增加一个用户反馈的功能,用户可以通过反馈功能将用户的意见和建议.程序出现的问题以一种更符合用户习惯的方式反馈回来.网上也有一些实现好的反馈程序的服务,包括bug的提交. ...

  2. java mail 使用 gmail smtp 发送邮件

    smtp 服务器:smtp.gmail.com 使用ssl的端口:465 用户名:username@gmail.com 密码:password** 基本配置没有问题,关键在于Google对安全性要求非 ...

  3. java mail使用中遇到的550类型错误

    前言 首先,需要说明的是,本错误来自于一个简单的基于java mail的api程序,邮件服务器是163的SMTP,即smtp.163.com. 程序 需要说明一下,下面这个程序,是来自于网络上,本人为 ...

  4. Java使用javax.mail.jar发送邮件并同意发送附件

    因为Java在开发网页上占有绝大优势.所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必定,网络安全一再安全我们须要把账号的安全级别提到更高.因此这些对于开发者也就成了必须掌握的技能!我一 ...

  5. 简单的java mail发送邮件实例

    mail.jar ,commons-email-X.X.jar ,activation.jar ,log4j.jar  这四个jar,放进项目里 下载地址 http://www.oracle.com/ ...

  6. Spring Boot 揭秘与实战(七) 实用技术篇 - Java Mail 发送邮件

    文章目录 1. Spring Boot 集成 Java Mail 2. 单元测试 3. 源代码 Spring 对 Java Mail 有很好的支持.因此,Spring Boot 也提供了自动配置的支持 ...

  7. 基于java mail实现简单的QQ邮箱发送邮件

    刚学习到java邮件相关的知识,先写下这篇博客,方便以后翻阅学习. -----------------------------第一步 开启SMTP服务 在 QQ 邮箱里的 设置->账户里开启 S ...

  8. java mail Received fatal alert: handshake_failure java 无法发送邮件问题 java 发送qq邮件(含源码)

     java 无法发送邮件问题 java 发送qq邮件 报错:java mail Received fatal alert: handshake_failure (使用ssl) javax.mail.M ...

  9. Android Java Mail与Apache Mail发送邮件对比

    原文链接: 一.邮件简介  一封邮件由很多信息构成,主要的信息如下,其他的暂时不考虑,例如抄送等:  1.收件人:收件人的邮箱地址,例如xxx@xx.com  2.收件人姓名:大部分的邮件显示时都会显 ...

随机推荐

  1. 分享各大CMS采集资源站网址合集

    分享各大CMS采集资源站网址合集 http://www.172zy.xyz/ 172云资源 http://www.dbzyz.com/ 豆瓣云资源 http://www.gaoqingzy.com/ ...

  2. (四十八)c#Winform自定义控件-下拉按钮

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...

  3. Redis学习总结(一)--Redis入门

    Redis 概念 1.Redis 是什么 Redis 是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理. 2.Redis 能干什么 Redis 支持字符串.哈希 ...

  4. python学习——字符串

    1)字符串解释 字符串是python中常用的数据类型我们可以使用" "或' '来创建字符串. 2)字符串操作 """访问字符串中的值"&qu ...

  5. Python 基础(五)

    pandas缺失值处理 import pandas as pd importrandom df01 = pd.DataFrame(np.random.randint(1,9),size = (4,4) ...

  6. HDU-4857-逃生-反向拓扑排序+优先队列

    HDU-4857 题意就是做一个符合条件的排序,用到拓扑序列. 我一开始wa了多发,才发现有几个样例过不了,发现1->2->3...的顺序无法保证. 后来就想用并查集强连,还是wa: 后来 ...

  7. 牛客小白月赛4 I 合唱队形 思维 字符串

    链接:https://www.nowcoder.com/acm/contest/134/I来源:牛客网 题目描述 铁子的班级在毕业晚会有一个合唱节目,到了毕业晚会的时候,他们必须排成一排一起合唱&qu ...

  8. 牛客多校第五场 E room 二分图匹配 KM算法模板

    链接:https://www.nowcoder.com/acm/contest/143/E来源:牛客网 Nowcoder University has 4n students and n dormit ...

  9. 漫谈JavaScript中的提升机制(Hoisting)

    前言 刚接触到JavaScript的时候,便知道JavaScript是按顺序执行的,是如浏览器的解析DOM树一样的流程,解析DOM结构的时候,如果遇到JS脚本或者外联脚本便会停止解析,继续下载脚本之后 ...

  10. Tomcat原理系列之六:详解socket如何封装成request(上)

    目录 参与者 总结 @(详解socket如何封装成request) 看源码虽然不能马上提升你的编码水平.但能让你更好的理解编程. 因为我们tomcat多是以NIO形式处理请求,所以本系列讲的都是NIO ...