1.JavaMail的介绍

1.1 什么是JavaMail

JavaMail,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。

1.2 JavaMail的应用

注册时发送帐户激活邮件、忘记密码时的账户验证、网站活动通知邮件等。

2. 邮件收发协议

2.1 SMTP

Simple Mail Transfer Protocol,即简单电子邮件协议。
Smtp服务的任务是基于配置接收和发送消息,通常把处理用户SMTP请求(邮件发送请求)的邮件服务器称之为SMTP服务器。

2.2 POP3

Post Office Protocol – Version 3,即“邮局协议版本3”。
POP3协议主要用于支持使用客户端远程管理在服务器上的电子邮件,POP3服务器则是处理邮件接收请求(POP3)。

3.邮件收发的过程

4.邮件发送案例

这里我写一个小Demo,这里贴出MailUtils的代码,如需完整代码请到我的github下载:

https://github.com/honhong/JavaProject/tree/master/maildemo

代码部分:
  /*** 发送邮件的方法* @param to 邮箱地址* @param msg 发送的信息*/public static void sendMail(String to, String msg) throws Exception {// 1.创建连接对象,连接到邮箱服务器Properties prop = new Properties();// 设置邮件服务器主机名prop.setProperty("mail.host", host);// 发送邮件协议名称prop.setProperty("mail.transport.protocol", "smtp");// 发送服务器需要身份验证prop.setProperty("mail.smtp.auth", "true");/*注意:使用qq邮箱发送需要开启ssl加密*//*MailSSLSocketFactory sf = new MailSSLSocketFactory();sf.setTrustAllHosts(true);prop.setProperty("mail.smtp.ssl.enable", "true");prop.put("mail.smtp.ssl.socketFactory", sf);*/Session session = Session.getInstance(prop,  new Authenticator() {public PasswordAuthentication getPasswordAuthentication() {//设置发送人的帐号和密码return new PasswordAuthentication(from[0], from[1]);}});// 2.创建邮件对象Message message = new MimeMessage(session);// 2.1 设置发件者message.setFrom(new InternetAddress(from[0]));// 2.2 设置收件者message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));// 2.3 设置邮件主题message.setSubject("欢迎您注册我们网站");// 2.4 设置邮件的正文message.setContent("<h1>请点击<a href='http://localhost:8080/maildemo/ActiveServlet?uid="+msg+"'>此链接</a>以激活账号</h1>", "text/html;charset=utf-8");// 3.发送邮件Transport.send(message);}
演示:
输入注册邮箱及其其它信息并点击注册:

网页跳转提示成功,对应的邮箱也会提示收到新邮件(这里我使用的是qq邮箱,也测试过163)

注意:作为邮件的发送者邮箱需要开启POP3服务。

JavaMail实现发送邮件程序相关推荐

  1. 通过javaMail API 发送邮件

    使用JavaMail API发送邮件只需要执行以下三个步骤: 1. 创建包含邮件服务器的网络连接信息的Session对象. 2. 创建代表邮件内容的Message对象. 3. 从Session对象中获 ...

  2. 使用JavaMail技术发送邮件

    2019独角兽企业重金招聘Python工程师标准>>> 1. 下载JavaMail API包  下载地址 2. 导入所需的jar包 3. 发送一封简单邮件的基本步骤 3.1 创建Se ...

  3. Java Web(十三) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)

    加油加油. --WH 一.发送邮件的原理 在了解其原理之前,先要知道两个协议,SMTP和POP3 SMTP:Simple Mail Transfer Protocol,即简单邮件传输协议,发送邮件的协 ...

  4. web开发(九) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)

    在网上看见一篇不错的文章,写的详细. 以下内容引用那篇博文.转载于<http://www.cnblogs.com/whgk/p/6506027.html>,在此仅供学习参考之用. 一.发送 ...

  5. 发送邮件程序(Csharp2005)

    我觉得懂得编写发送邮件客服端丰常重要.这可以把它嵌入到你的软件里加强与用户的沟通与可以收集程运行的错误信息.以与我编写一小的发送邮件客服端来与在家交流. 程序如下: 发送邮件解决方案下载 接下来,我来 ...

  6. java 发 腾讯企业邮_(更新)Java + 腾讯企业邮箱 + javamail + SSL 发送邮件

    咳咳~最头疼的就是莫名其妙的错误. 本来今年6月份运行通过的代码,过俩月就报错了. 1 javax.mail.MessagingException: Could not connect to SMTP ...

  7. 软测_2执行发送邮件程序的回归测试

    题目 什么是回归测试: 回归测试: Regression Test 不是属于测试阶段. (测试阶段: 单元测试, 集成测试, 系统测试, 验收测试) 当发现了缺陷,并且缺陷得到了解决,解决方案提交到了 ...

  8. 发送邮件程序报错454 Authentication failed以及POP3和SMTP简介

    一.发现问题 在测试邮件发送程序的时候,发送给自己的QQ邮箱,程序报错454 Authentication failed, please open smtp flag first. 二.解决问题 进入 ...

  9. javaMail简单发送邮件

    public class Mail {//发件人邮箱和密码static String myEmail="xxxxx@126.com";static String myEmailpa ...

最新文章

  1. 大量数据快速导出的解决方案-Kettle
  2. Razor master page
  3. 1.17 局部内部类
  4. 如何部署Docker镜像到SAP Cloud Platform
  5. MVVM模式下实现拖拽
  6. accsess转成mysql语句_access数据库转mysql经验分享
  7. Ubuntu sudo 出现unable to resolve host 解决方法
  8. 电脑出现 flash update failed 解决方法
  9. Altium AD20常用的操作快捷键,个人总结精炼版,全干货超实用
  10. SQL常用语句(普通查询+条件查询)
  11. java开发微信公众号支付全流程
  12. git报错-执行git pull 报错信息:error: 工作区中下列未跟踪的文件将会因为合并操作而被覆盖:
  13. 怎么无痕去除图片中的文字
  14. 01 MQTT小例子-连接
  15. Java实现 定义一个名为Rectangle的类表示矩形 求面积周长
  16. 发表SCI或EI类英文文章的投稿经验
  17. [eNSP]解决路由器以及交换机一直处于##,无法启动的问题
  18. linux_exec函数族-execl函数-execlp函数-execle函数-execv函数-execvp函数-execve函数
  19. mppdb 查看建表语句_内存MPP数据库介绍.pptx
  20. 计算机lg符号,网上总出现LG的符号,是什么意思

热门文章

  1. 量子计算的基本概念:量子位、量子纠缠、量子比特、量子算法
  2. Numpy:随机抽样
  3. ES中如何实现随机抽样查询
  4. 什么是接口?为什么要使用抓包工具?Fiddler实现截包与篡改、接口自动化测试
  5. 小程序+动易SF制作随手拍实例全景式操作(3)
  6. 玩转“抖音”的10种内容策划套路!
  7. HIVE中纵表转横表
  8. 计算机软考软件设计师2019试题,软考2019下半年软件设计师上午真题.pdf
  9. python 无法使用Ctrl-C终止Python脚本(ctrl+c 退出while True)
  10. Unity UV基于中心点旋转/缩放/位移 Shader