java发送邮件代码

(1)MailUtil.java

package com.durian.common.tool.email;import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;import org.springframework.mail.javamail.JavaMailSenderImpl;import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;/*** 阿里云禁止25端口发送邮件* * @author leng*/
public class MailUtil {private static final String HOST = MailConfig.host;private static final Integer PORT = MailConfig.port;private static final String USERNAME = MailConfig.userName;private static final String PASSWORD = MailConfig.passWord;private static final String emailForm = MailConfig.emailForm;private static final String timeout = MailConfig.timeout;private static final String personal = MailConfig.personal;private static final String subject = MailConfig.subject;private static final String html = MailConfig.html;private static JavaMailSenderImpl mailSender = createMailSender();/*** 邮件发送器** @return 配置好的工具*/private static JavaMailSenderImpl createMailSender() {JavaMailSenderImpl sender = new JavaMailSenderImpl();sender.setHost(HOST);sender.setPort(PORT);sender.setUsername(USERNAME);sender.setPassword(PASSWORD);sender.setDefaultEncoding("Utf-8");Properties p = new Properties();p.setProperty("mail.smtp.timeout", timeout);p.setProperty("mail.smtp.auth", "false");sender.setJavaMailProperties(p);return sender;}/*** 发送邮件** @param to      接受人* @param subject 主题* @param html    发送内容* @throws MessagingException           异常* @throws UnsupportedEncodingException 异常*/public static void sendMail(String to, String subject, String html)throws MessagingException, UnsupportedEncodingException {// 1. 创建参数配置, 用于连接邮件服务器的参数配置// 参数配置Properties props = new Properties();// 使用的协议(JavaMail规范要求)props.setProperty("mail.transport.protocol", "smtp");// 发件人的邮箱的 SMTP 服务器地址props.setProperty("mail.smtp.host", HOST);// 需要请求认证props.setProperty("mail.smtp.auth", "true");// SSLSocketFactory类的端口props.put("mail.smtp.socketFactory.port", PORT);// SSLSocketFactory类props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");props.put("mail.smtp.auth", "true");// 网易提供的ssl加密端口,QQ邮箱也是该端口props.put("mail.smtp.port", PORT);// 2. 根据配置创建会话对象, 用于和邮件服务器交互Session session = Session.getDefaultInstance(props);// 设置为debug模式, 可以查看详细的发送 logsession.setDebug(true);// 1. 创建一封邮件MimeMessage message = new MimeMessage(session);// 2. From: 发件人message.setFrom(new InternetAddress(USERNAME, personal, "UTF-8"));// 3. To: 收件人(可以增加多个收件人、抄送、密送)message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(to, "个人网站", "UTF-8"));// 4. Subject: 邮件主题message.setSubject(subject, "UTF-8");// 5. Content: 邮件正文(可以使用html标签)message.setContent(html, "text/html;charset=UTF-8");// 6. 设置发件时间message.setSentDate(new Date());// 7. 保存设置message.saveChanges();// 4. 根据Session获取邮件传输对象Transport transport = session.getTransport();// 5. 使用 邮箱账号 和 密码 连接邮件服务器, 这里认证的邮箱必须与 message 中的发件人邮箱一致, 否则报错transport.connect(USERNAME, PASSWORD);// 6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人,// 密送人transport.sendMessage(message, message.getAllRecipients());// 7. 关闭连接transport.close();}public static void main(String[] args) throws Exception {MailUtil.sendMail("xxx@qq.com", "激活邮件1", "这是一封测试邮件!");System.out.println("发送成功!");}
}

(2)MailConfig.java

package com.durian.common.tool.email;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;public class MailConfig {private static final String PROPERTIES_DEFAULT = "mailConfig.properties";public static String host;public static Integer port;public static String userName;public static String passWord;public static String emailForm;public static String timeout;public static String personal;public static String html;public static String subject;public static Properties properties;static {init();}/*** 初始化*/private static void init() {properties = new Properties();try {InputStream inputStream = MailConfig.class.getClassLoader().getResourceAsStream(PROPERTIES_DEFAULT);
//          properties.load(inputStream);
//          inputStream.close();// 解决中文乱码,采取reader把inputStream转换成reader用字符流来读取中文BufferedReader bf = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));properties.load(bf);host = properties.getProperty("mailHost");port = Integer.parseInt(properties.getProperty("mailPort"));userName = properties.getProperty("mailUsername");passWord = properties.getProperty("mailPassword");emailForm = properties.getProperty("mailFrom");timeout = properties.getProperty("mailTimeout");personal = properties.getProperty("personal");html = properties.getProperty("html");subject = properties.getProperty("subject");} catch (IOException e) {e.printStackTrace();}}
}

(3)mailConfig.properties

#服务器
mailHost=smtp.163.com
#端口号
mailPort=465
#邮箱账号
mailUsername=xxx@163.com
#邮箱授权码
mailPassword=xxxx
#时间延迟
mailTimeout=25000
#发送人
mailFrom=xxx@163.com

运行结果:。

java发送邮件工具类相关推荐

  1. java发送邮件工具类的编写直接复制版(兼补上篇邮箱改密发送邮件)

    上篇关于如何通过邮箱发送修改密码的链接的教程我取的名字叫作<炫酷又实用的发送邮箱链接修改密码保姆级教程>,文章发表之后发现炫酷呢?炫酷在那里?除了几段乏味的代码之外,什么也没有啊,甚至连怎 ...

  2. Java发送邮件工具类(可发送匿名邮件)

    为什么80%的码农都做不了架构师?>>>    为了不想到处去下载jar包,我使用maven为我管理,在开始编码这些东西之前,我们先在pom.xml文件中<dependenci ...

  3. Hutool Java常用工具类汇总

    简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的". Hu ...

  4. jmail组件 java_Jmail发送邮件工具类分享

    import lombok.extern.slf4j.Slf4j; import java.util.Properties; import javax.mail.*; import javax.mai ...

  5. day037 listener Timer 发送邮件工具类

    1 WEB监听器 1.1 概述 Web监听器就是一个组件,可以对其他的内容,进行监视控制,当被监视的内容,发生指定的行为时,web监听器就可以给出相应的处理方案. 事件源:被监视的内容. 监听器:监视 ...

  6. MailUtil-Java发送邮件工具类

    分享做项目时写的邮件的工具类: 一.准备工作: 1.使用java邮箱发送邮件,需要在邮箱设置中申请开通 POP3/SMTP 服务,以163邮箱为例: 在网页上打开登录163邮箱,点击设置-POP3/S ...

  7. UrlUtils工具类,Java URL工具类,Java URL链接工具类

    UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...

  8. Java并发工具类(闭锁CountDownLatch)

    并发工具类系列: Java并发工具类(闭锁CountDownLatch) Java并发工具类(栅栏CyclicBarrier) Java并发工具类(信号量Semaphore) 闭锁是一种同步工具类,可 ...

  9. java日期工具类DateUtil

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. DateUtil类 [java] view plain copy package com.util; ...

  10. Java常用工具类StringUtils的常用方法

    Java常用工具类StringUtils的常用方法 1.该工具类是用于操作Java.lang.String类的. 2.StringUtils类在操作字符串是安全的,不会报空指针异常,也正因此,在操作字 ...

最新文章

  1. 参考答案:02 矩阵及其运算
  2. Please ensure JDK installation is valid and compatible with the current OS
  3. ZooKeeper第三方客户端CuratorFramework简介
  4. 人与计算机猜数伪代码,《计算机和算法》PPT课件.ppt
  5. code css怎么拿不到div_不会“编程”拿不到初中毕业证?听北京海淀教委怎么说...
  6. 这35个Java代码优化细节,你用了吗?
  7. slf4j日志的最优使用方式
  8. Spring MVC学习总结(14)——SpringMVC测试框架之mockMVC详解
  9. iOS 解决报错 dyld: Library not loaded: @rpath/xxx.framework Reason: image not found
  10. 使用PROJ将空间坐标点从WGS84坐标系转换到UTM坐标系
  11. 灵雀云Kube-OVN:基于OVN的开源Kubernetes网络实践
  12. 软件里的alpha版和beta版是什么意思?
  13. 京东分布式数据库系统演进之路
  14. 201609-2 python CCF 更简单的思路和代码 100分
  15. 6-2 使用函数输出指定范围内Fibonacci数的个数 (20 分)
  16. 支付宝wap支付配置应用公钥/应用私钥
  17. python跑神经网络_程序员深夜用Python跑神经网络,只为用中二动作关掉台灯
  18. jquery表单ajax json数据,jquery序列化form表单使用ajax提交后处理返回的json数据
  19. 网络分析流量FIN_WAIT_2状态解释
  20. Web前端面试题(全锦集)

热门文章

  1. 如何在ImageRanger中设置人脸识别来整理照片分类
  2. fmea第五版pfmea表格_第五版PFMEA模板(含附属评分准则编写指南全套EXCEL表)
  3. Ubuntu中推荐使用的读代码软件
  4. 原生交互(mPass)
  5. Open3D 凸包算法
  6. 免费版本的mysql与收费版本的区别
  7. centos7播放MP4视频需要MPEG-4 AAC解码器,和H.264(High profile) 解码器
  8. [附源码]Java计算机毕业设计SSM餐厅订餐系统
  9. 无线充电原理与QI协议详解
  10. JDK下载与安装教程