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 ...
随机推荐
- 使用PowerShell比较本地文本文件与Web上的文本文件是否相同
使用PowerShell比较本地文本文件是否相同通常有两种方式:1.通过Get-FileHash这个命令,比较两个文件的哈希是否相同:2.通过Compare-Object这个命令,逐行比较两个文件的内 ...
- springboot之mybatisplus,mp的简单理解
这是一张简单的service的继承图.可以看到我们的执行类,即XxxServiceImpl的继承关系. 从上到下,ServiceImpl和BaseMapper是一个依赖关系,ServiceImpl和I ...
- 【CYH-02】NOIp考砸后虐题赛:函数:题解
这道题貌似只有@AKEE 大佬A掉,恭喜! 还有因为c++中支持两个参数数量不同的相同名称的函数调用,所以当时就没改成两个函数,这里表示抱歉. 这道题可直接用指针+hash一下,然后就模拟即可. 代码 ...
- Ubuntu系统安装QQ等软件
1.安装deepin-wine环境:上https://github.com/wszqkzqk/deepin-wine-for-ubuntu页面下载zip包(或用git方式克隆),解压到本地文件夹,在文 ...
- php重复开启session
虽然不知道 自己怎么就在一个后台系统页面中重复开启了session, 但是为了避免重复开始session的问题,可以使用: if (!session_id()) session_start(); 以上 ...
- 快速掌握mongoDB(五)——读写分离的副本集实现和Sharing介绍
1 mongoDB副本集 1 副本集简介 前边我们介绍都是单机MongoDB的使用,在实际开发中很少会用单机MongoDB,因为使用单机会有数据丢失的风险,同时单台服务器无法做到高可用性(即当服务器宕 ...
- 深入理解Java中的锁(一)
Java中锁的概念 自旋锁 : 是指当一个线程在获取锁的时候,如果锁已经被其他线程获取,那么该线程将循环等待,然后不断判断锁是否能够被成功获取,直到获取到锁才会退出循环. 乐观锁 : 假定没有冲突,在 ...
- linux初学者-DDNS配置篇
linux初学者-DDNS配置篇 如果DNS服务器要记录多台主机的IP,且这些主机的IP都是通过DHCPD服务自动获取的,那么将会造成很大的困难,因为在DNS设置时无法得知主机具体的IP.如果DHCP ...
- vue教程二 vue组件(1)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <script ...
- Consul和Kong的实践(一)
Consul和Kong的实践(一) 这一篇先介绍consul集群,以及consul和应用服务的结合使用,下一篇是和kong网关的结合. 一.Consul的集群安装 以其中一台机器为例: mkdir / ...