• 在很多项目中我们都会遇到发送邮件的功能,发送邮件其实还是很实用的,正好今天做项目需要实现,现在来简单的整理一下发送邮件的实现。

建立邮件与服务器之间的会话

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的简单使用(自测可以发邮件)的更多相关文章

  1. python自动发邮件库yagmail

    #### 一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from ...

  2. yagmail 实现发邮件

    yagmail 实现发邮件 yagmail 可以更简单的来实现自动发邮件功能. github项目地址: https://github.com/kootenpv/yagmail 安装 pip insta ...

  3. python自动发邮件库yagmail(转)

    一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from email ...

  4. 从spring boot发邮件聊到开发的友好性

    前些天帮一个朋友做网站,全站都是静态页面,唯一需要用到后端开发的是他需要一个留言板.传统的留言板一般都是提交后保存到数据库,然后提供一个后台的留言列表给管理人员看,我嫌麻烦,就决定留言提交到后台直接发 ...

  5. python语言(六)mock接口开发、发邮件、写日志、新Excel操作

    一.urllib模块 urllib模块是一个标准模块,直接import urllib即可,在python3里面只有urllib模块,在python2里面有urllib模块和urllib2模块. url ...

  6. 【python】python 自动发邮件

    一.一般发邮件的方法 Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件. 注意到构造MIMETEXT对象时,第一个参数就是邮件正文,第 ...

  7. 【知识积累】JavaMail实现发邮件功能

    一.前言 今天闲来没事,想着通过程序来给别人发邮件.于是,上网搜了一下,相应的资料也很多,刚开始完成了邮件的简单发送,后来想如何能发送附件,继续寻找 答案,但是遇到了一个问题是当我使用txt类型作为附 ...

  8. Java - JavaMail - 利用 JavaMail 发邮件的 小demo

    1. 概述 面试的时候, 被问到一些乱七八糟的运维知识 虽然我不是干运维的, 但是最后却告诉我专业知识深度不够, 感觉很难受 又回到了一个烦人的问题 工作没有深度的情况下, 你该如何的提升自己, 并且 ...

  9. 依据 smtp协议的简单golang 的发邮件实现

    依据 smtp协议的简单golang 的发邮件实现 协议格式如下 From:sender_user@demo.net To:to_user@demo.net Subject:这是主题 Mime-Ver ...

随机推荐

  1. Innovus Lab和Lab Guide下载地址 | Innovus教程 - Flow系列 - 数据准备

    本文转自:自己的微信公众号<集成电路设计及EDA教程> <Innovus Lab和Lab Guide下载地址 |    Innovus教程 - Flow系列 - 数据准备>   ...

  2. GitHub代码阅读神器,你值有拥有!

    (题图:from  github) Github作为全球最大的程序员聚集地,已经成为学习开发技能的绝佳伴侣(如果你是程序员,但你还没有账户的话,这里建议你去signup,毕竟能增加成长的机会,不能错过 ...

  3. markdown的博客

    测试一下markdown写博客 function firstProgram() { console.log("This is my first markdown blog"); }

  4. Java面试题汇总---升级版(附答案)

    前几天写了Java面试题汇总---基础版,总结了面试中常见的问题及答案,那我今天基于昨天的话题做一次升级,也就是说,求职者除了要学习了解哪些常见的基础面试题之外,还得准备些什么呢? 对有工作经验的求职 ...

  5. springcloud-高可用部署

    1.场景描述 前端时间只简单介绍了下springcloud的高可用方案(springcloud高可用方案),今天详细介绍下如何实施springcloud的高可用部署. 2.解决方案 2.1 架构方案 ...

  6. 15号作品teamfinal使用体验

    通过使用这款软件,可以轻松的查阅所处学期的任意周中某一天中的基教.一教.二教.三教和土木楼中的空教室,方便了同学去寻找空教室的方便,方便同学们上自习,节省寻找教室的时间,提供了非常大的便利. 打开界面 ...

  7. local class incompatible: stream classdesc serialVersionUID = 4125096758372084309, local class serialVersionUID = 7725746634795906143

    local class incompatible: stream classdesc serialVersionUID = 4125096758372084309, local class seria ...

  8. Linux中的保护机制

    Linux中的保护机制 在编写漏洞利用代码的时候,需要特别注意目标进程是否开启了NX.PIE等机制,例如存在NX的话就不能直接执行栈上的数据,存在PIE 的话各个系统调用的地址就是随机化的. 一:ca ...

  9. Excel催化剂开源第41波-网抓网络采集类库及工具分享

    在VBA开发网抓程序中,会用到xmlhttp/winHttp.winHttprequest.5.1等组件,当时笔者也是这样进入了网抓领域的,这些都是非常过时的东西,在.Net的开发中,有大量的更好用的 ...

  10. html+css test1

    模拟实验楼提供的一个网页.. [可由 git clone https://github.com/shiyanlou/finaltest 获取相关图片素材] <!DOCTYPE html>& ...