JavaMail的简单使用(自测可以发邮件)
- 在很多项目中我们都会遇到发送邮件的功能,发送邮件其实还是很实用的,正好今天做项目需要实现,现在来简单的整理一下发送邮件的实现。
建立邮件与服务器之间的会话
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.host", "smtp.sina.com");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.debug", "true");
Session session = Session.getInstance(props);
- 这里我使用的是sina的邮件服务器,
props.setProperty("mail.transport.protocol", "smtp");
是指需要同smtp来实现验证登录props.setProperty("mail.smtp.host", "smtp.sina.com");
指明用的是sina的服务器,自测目前QQ的服务器是收费的,sina的这个服务器免费,但是不能连续发送太多的邮件,否则会发送失败的props.setProperty("mail.smtp.auth", "true");
这句必须有,这个是标识说后面我们用户名和密码验证成功后就可以发送邮件props.setProperty("mail.debug", "true");
开启debug模式,是为了方便我们开发用的,有了这个我们在开发中在控制台上我们就可以看到邮件的发送详情及发送的状态,返回250状态码,说明发送成功。Session session = Session.getInstance(props);
拿到本次的会话,下面我们就可以发送邮件
创建邮件
Message msg = new MimeMessage(session);
这里的msg就是我们的邮件,但是现在邮件还是空的,我们需要向里面添加文本,HTML,附件,主题。。。。。。信息。
第一步:
设置邮件的发送方
msg.setFrom(new InternetAddress(这里填你的邮件));
第二部:
设置邮件的主题(主题就是邮件的主题,这个我就不解释了,如果上传附件这个也会是你下载的附件的压缩名称)
msg.setSubject("培训班结业信息");
第三部:
设置邮件的附件,附件这里我们需要拿到附件在硬盘上的地址,这里我写了一个方法,
public static MimeBodyPart createAttachment(String fileName) throws Exception {
MimeBodyPart attachmentPart = new MimeBodyPart();
FileDataSource fds = new FileDataSource(fileName); //得到数据源
attachmentPart.setDataHandler(new DataHandler(fds)); //得到附件本身并至入attachmentPart
attachmentPart.setFileName(fds.getName());
return attachmentPart; //得到文件名同样放入BodyPart
}然后我们通过这个方法就拿到这个附件,并加入到邮件里(msg)
MimeBodyPart attachment01 = createAttachment(filePath);
MimeMultipart allPart = new MimeMultipart("mixed");
allPart.addBodyPart(attachment01);
msg.setContent(allPart);注明发送地址
msg.setRecipient(RecipientType.TO,
new InternetAddress(address));
发送邮件
这里拿到邮件了,邮件的主题,内容,附件都设置好了,下面我们做的就是发送邮件
Transport trans = session.getTransport();
trans.connect(发送邮件的账号, 发送邮箱的密码);
trans.sendMessage(msg, msg.getAllRecipients());
http://download.csdn.net/detail/u013132051/9642347
JavaMail的简单使用(自测可以发邮件)的更多相关文章
- python自动发邮件库yagmail
#### 一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from ...
- yagmail 实现发邮件
yagmail 实现发邮件 yagmail 可以更简单的来实现自动发邮件功能. github项目地址: https://github.com/kootenpv/yagmail 安装 pip insta ...
- python自动发邮件库yagmail(转)
一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from email ...
- 从spring boot发邮件聊到开发的友好性
前些天帮一个朋友做网站,全站都是静态页面,唯一需要用到后端开发的是他需要一个留言板.传统的留言板一般都是提交后保存到数据库,然后提供一个后台的留言列表给管理人员看,我嫌麻烦,就决定留言提交到后台直接发 ...
- python语言(六)mock接口开发、发邮件、写日志、新Excel操作
一.urllib模块 urllib模块是一个标准模块,直接import urllib即可,在python3里面只有urllib模块,在python2里面有urllib模块和urllib2模块. url ...
- 【python】python 自动发邮件
一.一般发邮件的方法 Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件. 注意到构造MIMETEXT对象时,第一个参数就是邮件正文,第 ...
- 【知识积累】JavaMail实现发邮件功能
一.前言 今天闲来没事,想着通过程序来给别人发邮件.于是,上网搜了一下,相应的资料也很多,刚开始完成了邮件的简单发送,后来想如何能发送附件,继续寻找 答案,但是遇到了一个问题是当我使用txt类型作为附 ...
- Java - JavaMail - 利用 JavaMail 发邮件的 小demo
1. 概述 面试的时候, 被问到一些乱七八糟的运维知识 虽然我不是干运维的, 但是最后却告诉我专业知识深度不够, 感觉很难受 又回到了一个烦人的问题 工作没有深度的情况下, 你该如何的提升自己, 并且 ...
- 依据 smtp协议的简单golang 的发邮件实现
依据 smtp协议的简单golang 的发邮件实现 协议格式如下 From:sender_user@demo.net To:to_user@demo.net Subject:这是主题 Mime-Ver ...
随机推荐
- vue中ajax应用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python3 连接数据库注意点
类库:pymysql ''' Created on 2019年 @author: Root ''' import pymysql from name import getName # 数据库连接信息 ...
- 3. Django每日一码 之 Serializers 源码
2019-7-6 今日源码:rest-framework 序列化Serializers 序列化组件Serializers 源码分析 首先,它需要 data .many . instance,其中 in ...
- 利用jenkins实现自动构建、部署,提升团队开发效率
一大早就被群里的同学刷银川下雪的消息,看着我都发冷,突觉一阵凉风裹身,是不是该考虑秋裤了. 偏离主题,正文走起...... 使用jenkins目标:利用其结合maven完成自动构建,并部署到tomca ...
- STM32F0_HAL库驱动描述——基于F1的USART串口IT中断实现解析
从原子F103 HAL库基础串口例程来看HAL程序结构: 从main函数开始,首先是HAL库两个函数的初始化: HAL_Init(): Stm32_Clock_Init(RCC_PLL_MUL9); ...
- java学习笔记(基础篇)—抽象与接口的区别
抽象与接口的区别 一.抽象(abstract) 1. 抽象方法 1) 作用:定义规范 2) 抽象方法用来描述具有什么功能,但不提供实现. 3) 如果类中一个方法没有实现就要定义一个抽象方法. 2. 抽 ...
- 从后端到前端之Vue(二)写个tab试试水
上一篇写了一下table,然后要写什么呢?当然是tab了.动态创建一个tab,里面放一个table,这样一个后台管理的基本功能(之一)就出来了. 好吧,这里其实只是试试水,感受一下vue的数据驱动可以 ...
- [记录]Nginx配置实现&&和||的方法实例
Nginx配置文件中if的&&和||的实现(nginx不支持&&和||的写法) 1.与(&&)的写法: set $condiction '';if ($ ...
- 【投票】你心目中的Excel催化剂价值有多大(附主流国内外收费插件供参考)?
Excel催化剂开发过程中,在前期功能中,也会参考着其他的插件的功能,也略略收集了一些其他插件的功能及价格信息,在当今免费等于鸡肋的时代,为了让大家不受这个免费的错觉影响,不妨以另一种角度去假设一翻, ...
- django中ORM的model对象和querryset 简单解析
欢迎大家查看我的博客,我会不定时的用大白话发一些看了就能懂的文章,大家多多支持!如您对此文章内容有独特见解,欢迎与笔者练习一起探讨学习!原创文创!转载请注明出处! ORM是干嘛的? 介绍orm之前我应 ...