JavaMail邮件发送

  • JavaMail发送邮件
    • 笔记
    • 导入mail.jar包
    • eclipse编写时的目录
    • 网页上发送邮件
      • 采用qq邮箱和网易邮箱
      • 代码
    • 客户端发送邮箱
      • 客户端采用foxmail
      • 服务器采用易邮邮件
      • 代码

JavaMail发送邮件

笔记

JavaMail介绍

  1. 邮件相关概念
    客户端:安装的客户端或网页形式
    服务器:起到邮件的接收和发送的功能
    协议:数据传输的约束
    接收邮件的协议:POP3 IMAP
    发送邮件的协议:SMTP

  2. javaMail的实现 导入对应的jar包

导入mail.jar包

JavaMail 是sun公司(现以被甲骨文收购)为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如前面所讲的SMTP,POP3,IMAP,还有MIME等。我们在使用JavaMail API 编写邮件时,无须考虑邮件的底层实现细节,只要调用JavaMail 开发包中相应的API类就可以了。

JavaMail 下载地址: https://github.com/javaee/javamail/releases

eclipse编写时的目录

网页上发送邮件

采用qq邮箱和网易邮箱

  • 在qq邮箱的邮箱设置中点击账户,找到开启服务的地方,将下图所示服务开启,保存授权码

代码

  • MailUtil.java代码如下:
package mail;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;import java.util.Properties;public class MailUtil {/**邮件的发送* @param email    邮件的接收者* @param subject  邮件的标题* @param emailMsg 邮件的内容* @throws MessagingException */public static void sendMail(String email,String subject,String emailMsg) throws MessagingException {//创建会话需要的参数Properties props=new Properties();//设置发送邮件的服务器协议props.setProperty("mail.transport.protocol", "SMTP");//设置发送邮件的服务器地址props.setProperty("mail.host", "smtp.qq.com");//指定进行验证props.setProperty("mail.smpt.auth", "true");//创建验证其对象Authenticator auth=new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication("qq号", "授权码");}};//创建一个程序与邮件服务器会话对象,props键值对:发送服务器的协议、地址,auth验证器:把用户名和密码放进去Session session=Session.getInstance(props,auth);//创建一个Message,相当于是邮件内容Message message= new MimeMessage(session);//设置发送者message.setFrom(new InternetAddress("qq邮箱"));//设置发送方式、接收者message.setRecipient(RecipientType.TO,new InternetAddress(email));//邮件的标题message.setSubject(subject);//邮件的内容message.setContent(emailMsg,"text/html;charset=utf-8");//message.setText("<a></a>");//发送邮件Transport.send(message);}}
  • TestMail.java代码如下:
package mail;import javax.mail.MessagingException;
import javax.mail.internet.AddressException;;
public class TestMail {public static void main(String[] args ) {try {MailUtil.sendMail("网易邮箱","测试邮件","hello,你好");System.out.println("发送成功");}catch (AddressException e) {e.printStackTrace();} catch (MessagingException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

客户端发送邮箱

客户端采用foxmail

新建两个用户:一个用来发送,一个用来接收

服务器采用易邮邮件

在易邮中创建两个账户,名称和上面一样

代码

  • MailUtil.java代码如下:
 package mail;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;import java.util.Properties;public class MailUtil {/**邮件的发送* @param email    邮件的接收者* @param subject  邮件的标题* @param emailMsg 邮件的内容* @throws MessagingException */public static void sendMail(String email,String subject,String emailMsg) throws MessagingException {//创建会话需要的参数Properties props=new Properties();//设置发送邮件的服务器协议props.setProperty("mail.transport.protocol", "SMTP");//设置发送邮件的服务器地址props.setProperty("mail.host", "localhost");//指定进行验证props.setProperty("mail.smpt.auth", "true");//创建验证其对象Authenticator auth=new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication("jack", "123");//账户名和密码}};//创建一个程序与邮件服务器会话对象,props键值对:发送服务器的协议、地址,auth验证器:把用户名和密码放进去Session session=Session.getInstance(props,auth);//创建一个Message,相当于是邮件内容Message message= new MimeMessage(session);//设置发送者message.setFrom(new InternetAddress("jack@geek.com"));//设置发送方式、接收者message.setRecipient(RecipientType.TO,new InternetAddress(email));//邮件的标题message.setSubject(subject);//邮件的内容message.setContent(emailMsg,"text/html;charset=utf-8");//message.setText("<a></a>");//发送邮件Transport.send(message);}}
  • TestMail.java代码如下:
package mail;import javax.mail.MessagingException;
import javax.mail.internet.AddressException;;
public class TestMail {public static void main(String[] args ) {try {MailUtil.sendMail("tom@geek.com","测试邮件","hello,你好");System.out.println("发送成功");}catch (AddressException e) {e.printStackTrace();} catch (MessagingException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

JavaMail邮件发送,网页、客户端详解-JavaWeb学习6.9相关推荐

  1. JavaMail邮件发送不成功的那些坑人情况及分析说明

    前言   JavaMail的使用本身并不难,网上有不少案例,简单易懂,而且有详细的中文注解.但是由于JavaMail的机制设置不够完善,特别是异常出错时的参考信息太少,给初学者造成了不少麻烦,而我就是 ...

  2. JavaMail邮件发送不成功的那些坑人情况及分析说明(巨坑跳出专用姿势)

    https://blog.csdn.net/xyw591238/article/details/69530950 前言   JavaMail的使用本身并不难,网上有不少案例,简单易懂,而且有详细的中文 ...

  3. javaMail邮件发送

    MailAuthenticator.java package com.sunrise.jop.common.mail;import javax.mail.Authenticator; import j ...

  4. Spring的javaMail邮件发送(带附件)

    项目中经常用到邮件功能,在这里简单的做一下笔记,方便日后温习. 首先需要在配置文件jdbc.properties添加: #------------ Mail ------------ mail.smt ...

  5. 带附件/密送/抄送的 javaMail 邮件发送 -- java_demo(两种实现方式)

    话不多说,上代码--第一种,自己实现的,参考资料 javaMail 的邮件发送包括了抄送(CC),密送(BCC)采用springBoot 常用的邮件服务器名称.地址及SSL/非SSL协议端口号 Jav ...

  6. javamail——邮件发送

    最近都在熟悉先前学习的一系列知识,感觉需要加强巩固. 最近实现了邮件发送的业务,这是我的记录. 分析 javamail是用来发送邮件的.我们在代码里操作他来实现邮件发送. 我们使用qq邮箱作为案例 设 ...

  7. 应用层之E-mail服务及javaMail邮件发送的知识总结

    关于Email服务你需要知道的知识点: 概述: 今天来介绍一下应用层的电子邮件服务,我们每天几乎都在用,电子邮件(email)服务也是一种基于C/S模式的服务,它采用的是一种"存储-转发&q ...

  8. javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)

    先看源码,再来理解,可以直接使用! JavaMailWithAttachment.java: <span style="font-family: Arial, Helvetica, s ...

  9. 随笔之javamail邮件发送(阿里云企业邮箱)

    mvn依赖: <!-- Java Mail --> <dependency><groupId>javax.mail</groupId><artif ...

最新文章

  1. 使用PHPStorm 配置自定义的Apache与PHP环境
  2. php常量定义表达式,从表达式创建PHP类常量的最佳解决方法?
  3. 如何优化 .NET Core 中的 lambda 查询表达式 ?
  4. 程序员都长得丑?颜值底线是程序员?
  5. Qt基础-QTreeView简单demo、视图模型、坐标位置对应关系介绍等
  6. 基于php+Mysql新闻管理系统 开题报告
  7. C# 控制台、接口、窗体使用BarTender打印标签 (亲测可用)
  8. IDEA离线安装maven helper插件
  9. .dat文件三维点云可视化
  10. 数据库出货加权平均成本计算问题
  11. 求推荐一款移动硬盘,日立和西数哪个好?
  12. 微信付款到个人银行卡php,微信企业付款到银行卡(下)
  13. CSS颜色代码大全及a标签超链接颜色改变
  14. Scrapy 规则化爬虫(1)——CrawlSpider及link_extractor
  15. python把四个图画在一个窗口_Python 多个图同时在不同窗口显示的实现方法
  16. ping问题详解(请求超时,无法访问目标主机)
  17. python如何计算平方_Python lmfit如何计算R平方?
  18. C++设计模式 | Factory工厂模式(简单工厂、工厂方法、抽象工厂)
  19. 模板模式实现后端公众号登录功能,Java8版
  20. 手游海外聚合SDK介绍

热门文章

  1. 机器学习——windows上实现照片动漫化【AnimeGANv2】
  2. 多级放大电路耦合方式的优缺点
  3. mysql可以存文档_MySQL 文档存储介绍
  4. 王道2019年计算机考研专业课培训书籍
  5. opencv 之 双边滤波bilateralFilter
  6. html标题栏音量开关,jQuery和css3音量调节旋钮插件
  7. css将鼠标箭头换成图片
  8. 关于16进制0x的理解
  9. 中星微ZC301P摄像头驱动支持
  10. C# winform窗体如何设置才可以不能随意拖动大小