tnblog
首页
视频
资源
登录

Java程序实现发送简单文本邮件

6587人阅读 2020/3/15 19:05 总访问:177158 评论:0 收藏:0 手机
分类: JAVA
  1.     /**    
  2.      * Java程序实现发送简单文本邮件
  3.      * 
  4.      * @author Administrator
  5.      * 
  6.      */
  7.     public class SendTextMail {
  8.         // 定义发件人地址
  9.         public static String sendAddress = "xxxx@163.com";
  10.         // 定义收件人地址
  11.         public static String receiveAddress = "xxx@163.com";
  12.         // 定义发件人账户名
  13.         public static String sendAccount = "xxx@163.com";
  14.         // 定义发件人密码
  15.         public static String senderPassword = "xxxxx";
  16.         public static void main(String[] args) throws Exception {
  17.         // 1.链接邮件服务器的参数配置
  18.         Properties props = new Properties();
  19.         // 2.设置用户的认证方式
  20.         props.setProperty("mail.smtp.auth""true");
  21.         // 3.设置传输协议
  22.         props.setProperty("mail.transport.protocol""smtp");
  23.         // 4.设置发件人的SMTP服务器地址
  24.         props.setProperty("mail.smtp.host""smtp.163.com");
  25.         // 1、创建定义整个应用程序所需的环境信息的 Session 对象
  26.         Session session = Session.getInstance(props);
  27.         // 2.设置调试信息在控制台打印出来
  28.         //session.setDebug(true);
  29.         // 3.创建邮件的实例对象
  30.         Message msg = getMimeMessage(session);
  31.         // 4.根据session对象获取邮件传输对象Transport
  32.         Transport transport = session.getTransport();
  33.         // 设置发件人的账户名和密码
  34.         transport.connect(sendAccount, senderPassword);
  35.         // 发送邮件,并发送到所有收件人地址,message.getAllRecipients() 
  36.         //获取到的是在创建邮件对象时添加的所有收件人,
  37.         // 抄送人, 密送人
  38.         transport.sendMessage(msg, msg.getAllRecipients());
  39.         // 如果只想发送给指定的人,可以直接写
  40.         // transport.sendMessage(msg, new Address[]{new
  41.         // InternetAddress("xxx@qq.com")});
  42.         // 关闭邮件连接
  43.         transport.close();
  44.     }
  45.     /**
  46.      * 获得创建一封邮件的实例对象
  47.      * 
  48.      * @param session
  49.      * @return
  50.      * @throws MessagingException
  51.      * @throws AddressException
  52.      */
  53.     public static MimeMessage getMimeMessage(Session session) throws Exception {
  54.         // 创建一封邮件的实例对象
  55.         MimeMessage msg = new MimeMessage(session);
  56.         // 设置MimeMessage对象的发件人地址
  57.         msg.setFrom(new InternetAddress(sendAddress));
  58.         /**
  59.          * 设置收件人地址(可以增加多个收件人、抄送、密送),
  60.          * 即下面这一行代码书写多行 MimeMessage.RecipientType.TO:发送
  61.          * MimeMessage.RecipientType.CC:抄送 
  62.          * MimeMessage.RecipientType.BCC:密送
  63.          */
  64.         //设置MimeMessage对象的接收人以及接收方式
  65.         msg.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(
  66.         receiveAddress));
  67.         // 设置邮件主题
  68.         msg.setSubject("测试邮件""UTF-8");
  69.         // 设置邮件正文
  70.         msg.setContent("这是测试邮件的内容""text/html;charset=UTF-8");
  71.         // 设置邮件的发送时间,默认立即发送
  72.         msg.setSentDate(new Date());
  73.         return msg;
  74.     }


评价

Java8 十大新特性详解

前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特...

如何评价Java11

JDK11作为LTS长期支持版本, 在今后几年会逐步像JDK8一样流行, 因为下一个LTS版本要等待3年后的JDK17了.从JDK11累积了JDK9,1...

Java中的堆和栈以及堆栈的区别

在正式内容开始之前要说明一点,我们经常所说的堆栈堆栈是堆和栈统称,堆是堆,栈是栈,合在一起统称堆栈;  1.栈(stack)...

JavaScript中的事件委托

什么是事件委托事件委托在JavaScript中是非常常见的,它主要用于对某个元素中的子元素的冒泡事件进行监听。JavaScript高级...

该用 Java 12 还是坚持 Java 11?

搭上火箭也追不上的 Java 更新速度,不少程序员们大呼,我可不可以坚持使用 Java 8?!但是对于已使用到 LTS 版本的 Java 1...

Javascript阻止scroll事件多次执行的思路及实现

//测试代码 window.onscroll=function(){ alert("haha"); }鼠标滑动之后一直点击提示框才可以,我想要的是鼠...

Java学习路线

第一部分:Java开发介绍1. DOS常用命令2. JVM、JRE、JDK之间的关系3. Java开发环境的搭建:安装JDK,配置环境变量4. Java入...

Java web学习路线

第二阶段:JavaWeb第一部分:HTML51. html概述2. html基本标签3. 图片标签4. 超链接标签5. 表格标签6. 无序列表标签7. 有序...

Java框架

第三阶段:Java框架第一部分:Maven1. Maven环境搭建2. Maven构建项目3. Maven本地仓库配置4. Maven中央仓库配置5. Maven基...

Java + 云数据

第四阶段:Java + 云数据第一部分:Linux版本1.Linux简介和安装2.Linux和Windows的区别3.Linux远程登录4.Linux常用命令5.Li...

JavaScript的事件分类

JavaScript的事件大致可以分为几类,了解这些事件分类将有助于理解和组织代码。1、依赖于设备的输入事件有些事件和特定输入...

配置Java环境

安装jdk 地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html这就不一一赘述了...

C与Java二进制编码转换,补码

在C#与Java接口对接时,需要将图片转化为二进制编码传输,这时候发现c#转换出来的编码的值是0~255的范围,而java方需要的是...

Java学习 - Java语言简介

java语言简介1.了解java产生的背景2.了解java体系结构和组成3.了解Java API文档的使用4.搭建java语言的开发环境(重点)5....

Java学习 - Java语言基础

Java语言基础1.Scanner的用法2.java的程序结构3.java的数据类型4.java的运算符和表达式5.程序流程控制6.数组一 Scanner的用...

Java学习 - 类和对象

1.了解面向对象和面向过程的区别 2.理解什么是类以及创建类的语法 3.理解什么是对象以及如何创建 4.掌握什么是封装一 面向...
sometimes ever,sometimes never
排名
21
文章
27
粉丝
11
评论
12
MySQL数据库基础
剑轩 : 大神教我学mysql!
MySQL概述与安装配置
剑轩 : PHP是目前最流行的 Web 开发语言
JAVA8 十大新特性详解
叼着奶瓶逛酒吧 : 文章写得真心不错,加油哈
Java学习 - Java语言基础
剑轩 : 每个小标题颜色加深一点会更好哦
Java学习 - Java语言简介
剑轩 : 请注意,java大神开讲了
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术