Email邮件设置(网易邮箱、Mailgun)  下篇

说明:STMP服务邮件发送工具类,其中包括文本发送、html发送、附件发送。

1.maven pom 配置

        <dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependency>

2.工具类

package com.hxl.utils.email.mailgun;import com.hxl.utils.http.HttpClientUtil;
import lombok.Data;import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;
import java.io.File;
import java.util.Date;
import java.util.Properties;/*** 邮件发送的 封装工具* Mailgun(服务器smtp.mailgun.org)、网易邮箱(服务器smtp.163.com)* Created by hxl on 2019/9/2.*/
@Data
public class SendEmailUtils {/***  邮件服务器  Mailgun(服务器smtp.mailgun.org)、网易邮箱(服务器smtp.163.com)*/private String emailHost;/*** 协议  值:smtp*/private String protocol;/*** 端口  默认 25  ssl 默认495端口*/private int emailPort;/*** 发件人 邮箱*/private String emailForm;/*** 密码*/private String emailPwd;public SendEmailUtils(String emailHost,String protocol,int emailPort,String emailForm,String emailPwd) {this.emailHost = emailHost;this.protocol = protocol;this.emailPort = emailPort;this.emailForm = emailForm;this.emailPwd = emailPwd;}private Session getSession() {Properties props = new Properties();props.put("mail.smtp.host", emailHost);// 设置服务器地址props.put("mail.store.protocol",emailPort);// 设置协议props.put("mail.smtp.port",emailPort );// 设置端口props.put("mail.smtp.auth", true);// props.put("mail.smtp.ssl.enable", true); 是否开启ssl验证 开启验 端口传 465 其他默认端口 25Authenticator authenticator = new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(emailForm,emailPwd);}};Session session = Session.getDefaultInstance(props, authenticator);return session;}/*** 文本发送* @param title* @param setText* @param to_mail_address*/public void sendEmail(String title,String setText,String to_mail_address){Session session = this.getSession();try {Message msg = new MimeMessage(session);msg.setFrom(new InternetAddress(emailForm));InternetAddress[] address = { new InternetAddress(to_mail_address) };msg.setRecipients(Message.RecipientType.TO, address);msg.setSubject(title);msg.setSentDate(new Date());msg.setText(setText);Transport.send(msg);} catch (MessagingException mex) {mex.printStackTrace();}}/*** html 发送* @param title* @param body* @param to_mail_address*/public void sendHtmlEmail(String title,String body,String to_mail_address){Session session = this.getSession();try {Message msg = new MimeMessage(session);msg.setFrom(new InternetAddress(emailForm));InternetAddress[] address = { new InternetAddress(to_mail_address) };msg.setRecipients(Message.RecipientType.TO, address);msg.setSubject(title);msg.setSentDate(new Date());msg.setContent(body, "text/html;charset=utf-8");Transport.send(msg);} catch (MessagingException mex) {mex.printStackTrace();}}/*** 带附件 邮件发送* @param title 标题* @param setText 正文* @param to_mail_address 收件人地址* @param path 文件名称*/public void sendFileEmail(String title,String setText,String to_mail_address,String path) {Session session = this.getSession();try {Message msg = new MimeMessage(session);msg.setFrom(new InternetAddress(emailForm));InternetAddress[] address = { new InternetAddress(to_mail_address) };msg.setRecipients(Message.RecipientType.TO, address);msg.setSubject(title);msg.setSentDate(new Date());//msg.setContent(body, "text/html;charset=utf-8");// 创建消息部分MimeBodyPart messageBodyPart = new MimeBodyPart();// 消息messageBodyPart.setText(setText);// 创建多重消息Multipart multipart = new MimeMultipart();// 设置文本消息部分multipart.addBodyPart(messageBodyPart);messageBodyPart = new MimeBodyPart();//设置要发送附件的文件路径String filename = path;DataSource source = new FileDataSource(filename);messageBodyPart.setDataHandler(new DataHandler(source));//messageBodyPart.setFileName(filename);//处理附件名称中文(附带文件路径)乱码问题messageBodyPart.setFileName(MimeUtility.encodeText(filename));multipart.addBodyPart(messageBodyPart);msg.setContent(multipart);Transport.send(msg);} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {System.out.println("----测试");//网易邮箱 smtp.163.comSendEmailUtils emailUtils = new SendEmailUtils("smtp.163.com","smtp",25,"**发件人 **","*密码*");emailUtils.sendHtmlEmail("测试邮件","<a href='http://www.baidu.com'>请点击激活</a>","***@qq.com");emailUtils.sendFileEmail("带附件文件","没内容文本","**@qq.com","D://temp.jpg");//Mailgun smtp.163.comSendEmailUtils mg = new SendEmailUtils("smtp.mailgun.org","smtp",25,"**发件人 **","**密码**");mg.sendHtmlEmail("测试邮件","<a href='http://www.baidu.com'>请点击激活</a>","***@qq.com");System.out.println("----完成");}
}

Email邮件发送设置 工具开发整理(网易邮箱、Mailgun为例) 下篇相关推荐

  1. Email邮件发送设置 工具开发整理(网易邮箱、Mailgun为例) 上篇

    Email邮件设置   工具开发整理(网易邮箱.Mailgun为例) 上篇 说明:Email邮件 国内国外设置 以网易邮箱和Mailgun为例,并开发工具类. 一.国内 网易邮箱设置  1.设置STM ...

  2. android javamail获取邮件太多太慢_java 实现 email 邮件发送最简单优雅的方式(网易 163 为例)

    如何使用IMAP服务? 首先介绍一些邮件发送的基础知识,如果你已经知道可以跳过. 直接到 Email 邮件发送实现的部分. IMAP是什么? IMAP,即Internet Message Access ...

  3. SpringBoot整合Email 邮件发送

    文章目录 一.准备 二.邮件发送需要的配置 获取163邮箱授权码 获取QQ邮箱授权码 YML配置 三.代码编写 普通邮件发送 HTML邮件发送 含静态资源邮件发送 带附件邮件发送 SpringBoot ...

  4. Bella Email邮件发送模板

    简介: Bella Email邮件发送模板是一款HTML5网站模板.aspku提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢. 下载地址: http://www.bytepan.com/X3 ...

  5. SpringBoot集成163邮件发送详细配置,从163邮箱开始配置

    SpringBoot集成163邮件发送详细配置,从163邮箱开始配置 1.登录163邮箱 2.配置163邮箱 3.开始编写SpringBoot代码 1.创建SpringBoot项目然后引入依赖 2.编 ...

  6. 小工具:天气查询 Vs自定义设置 DevGridControl中GridView排序问题 小工具:火车票查询 小工具:邮件发送 小工具:截图简单图像处理...

    小工具:天气查询 开发一个天气查询的工具主要由两步构成,一是数据的获取,二是数据的展示.  一.数据获取 数据获取又可以分为使用其它公司提供的API和手动抓取其它网站数据. 1. 某公司提供的API ...

  7. 伪造邮件***,看我如何给网易邮箱APP发送垃圾邮件【二】

    Duang~~~好久没更新博客了,源于最近比较忙,感谢博友对我的支持哈~今天继续更新 后面以我在补天漏洞平台提交过的漏洞为入口. 网易邮箱国内用户很多.今天看见他家的app了 ,99.95%垃圾邮件捕 ...

  8. 【Python 应用篇】Email 邮件发送

    一.简单邮件发送 '''程序描述: 该脚本程序,用于完成简单的邮件发送功能 从文本文件中,提取内容,并发送给指定邮箱 ''' '''作者 = xxxxx ''' '''日期 = 2022.05.10 ...

  9. php 邮件发送设置_PHP实现自动发送邮件功能代码(qq 邮箱)

    最近做一个邮箱验证的功能,研究了一会,搞定了邮件的自动发送.下面用qq邮箱作为演示,一步一步来解释: 代码下载地址 首先,就是做到邮件的发送,代码如下: //邮件发送 require "./ ...

最新文章

  1. 金融风控实战——Hive详解(数据读取、预处理、特征工程)
  2. 生产订单中的下层物料信息
  3. python爬取小说写入txt_对新笔趣阁小说进行爬取,保存和下载!这就是Python的魅力...
  4. mysql正则提取字符串_mysql字符串查找截取与正则表达式的联合应用
  5. MySql根据经纬度查询任意距离范围内数据
  6. InetAddressSocket使用总结
  7. Gnome Subtitles 0.0.1
  8. java clone方法_JAVA对象clone方法代码实例解析
  9. mysql dump h_mysqldump
  10. php if k 1,PHP实现大数字格式化成K/M/B结尾的简短形式
  11. fgui的ui管理框架_ET框架FGUIxasset的梦幻联动
  12. Python植物大战僵尸源代码及素材
  13. @DependsOn或depends-on配置的使用
  14. C++ 依赖倒置原则
  15. iPhone模拟器截图
  16. UBUNTU内核升级后,如何更新 kernel headers
  17. token什么意思中文在C语言中,token是什么意思(token的含义及使用方法)
  18. 全球及中国智能X光安检机行业研究及十四五规划分析报告
  19. 计算机桌面图标的使用,电脑桌面图标不见了怎么恢复 如何规范使用电脑
  20. 打卡签到python代码_[python] 初学python,打卡签到

热门文章

  1. (求助)RPC failed;curl 56 GnuTLS recv error(-9): A TLS packet with unexpected length was received
  2. 掘金chrome插件安装失败怎么办?
  3. 安卓篇-我自己的第一个安卓程序(附源码链接)
  4. git 团队协作正确操作流程
  5. 46_Pandas,Python,Seaborn热图的生成
  6. 电路设计之--滤波电容选取
  7. python迷宫地图代码_Python机器人探测迷宫代码求助
  8. PWM控制的基本原理
  9. 清橙OJ A1046 加法器
  10. 工业机器人调运角度_工业机器人的应用案例