Email邮件发送设置 工具开发整理(网易邮箱、Mailgun为例) 下篇
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为例) 下篇相关推荐
- Email邮件发送设置 工具开发整理(网易邮箱、Mailgun为例) 上篇
Email邮件设置 工具开发整理(网易邮箱.Mailgun为例) 上篇 说明:Email邮件 国内国外设置 以网易邮箱和Mailgun为例,并开发工具类. 一.国内 网易邮箱设置 1.设置STM ...
- android javamail获取邮件太多太慢_java 实现 email 邮件发送最简单优雅的方式(网易 163 为例)
如何使用IMAP服务? 首先介绍一些邮件发送的基础知识,如果你已经知道可以跳过. 直接到 Email 邮件发送实现的部分. IMAP是什么? IMAP,即Internet Message Access ...
- SpringBoot整合Email 邮件发送
文章目录 一.准备 二.邮件发送需要的配置 获取163邮箱授权码 获取QQ邮箱授权码 YML配置 三.代码编写 普通邮件发送 HTML邮件发送 含静态资源邮件发送 带附件邮件发送 SpringBoot ...
- Bella Email邮件发送模板
简介: Bella Email邮件发送模板是一款HTML5网站模板.aspku提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢. 下载地址: http://www.bytepan.com/X3 ...
- SpringBoot集成163邮件发送详细配置,从163邮箱开始配置
SpringBoot集成163邮件发送详细配置,从163邮箱开始配置 1.登录163邮箱 2.配置163邮箱 3.开始编写SpringBoot代码 1.创建SpringBoot项目然后引入依赖 2.编 ...
- 小工具:天气查询 Vs自定义设置 DevGridControl中GridView排序问题 小工具:火车票查询 小工具:邮件发送 小工具:截图简单图像处理...
小工具:天气查询 开发一个天气查询的工具主要由两步构成,一是数据的获取,二是数据的展示. 一.数据获取 数据获取又可以分为使用其它公司提供的API和手动抓取其它网站数据. 1. 某公司提供的API ...
- 伪造邮件***,看我如何给网易邮箱APP发送垃圾邮件【二】
Duang~~~好久没更新博客了,源于最近比较忙,感谢博友对我的支持哈~今天继续更新 后面以我在补天漏洞平台提交过的漏洞为入口. 网易邮箱国内用户很多.今天看见他家的app了 ,99.95%垃圾邮件捕 ...
- 【Python 应用篇】Email 邮件发送
一.简单邮件发送 '''程序描述: 该脚本程序,用于完成简单的邮件发送功能 从文本文件中,提取内容,并发送给指定邮箱 ''' '''作者 = xxxxx ''' '''日期 = 2022.05.10 ...
- php 邮件发送设置_PHP实现自动发送邮件功能代码(qq 邮箱)
最近做一个邮箱验证的功能,研究了一会,搞定了邮件的自动发送.下面用qq邮箱作为演示,一步一步来解释: 代码下载地址 首先,就是做到邮件的发送,代码如下: //邮件发送 require "./ ...
最新文章
- 金融风控实战——Hive详解(数据读取、预处理、特征工程)
- 生产订单中的下层物料信息
- python爬取小说写入txt_对新笔趣阁小说进行爬取,保存和下载!这就是Python的魅力...
- mysql正则提取字符串_mysql字符串查找截取与正则表达式的联合应用
- MySql根据经纬度查询任意距离范围内数据
- InetAddressSocket使用总结
- Gnome Subtitles 0.0.1
- java clone方法_JAVA对象clone方法代码实例解析
- mysql dump h_mysqldump
- php if k 1,PHP实现大数字格式化成K/M/B结尾的简短形式
- fgui的ui管理框架_ET框架FGUIxasset的梦幻联动
- Python植物大战僵尸源代码及素材
- @DependsOn或depends-on配置的使用
- C++ 依赖倒置原则
- iPhone模拟器截图
- UBUNTU内核升级后,如何更新 kernel headers
- token什么意思中文在C语言中,token是什么意思(token的含义及使用方法)
- 全球及中国智能X光安检机行业研究及十四五规划分析报告
- 计算机桌面图标的使用,电脑桌面图标不见了怎么恢复 如何规范使用电脑
- 打卡签到python代码_[python] 初学python,打卡签到
热门文章
- (求助)RPC failed;curl 56 GnuTLS recv error(-9): A TLS packet with unexpected length was received
- 掘金chrome插件安装失败怎么办?
- 安卓篇-我自己的第一个安卓程序(附源码链接)
- git 团队协作正确操作流程
- 46_Pandas,Python,Seaborn热图的生成
- 电路设计之--滤波电容选取
- python迷宫地图代码_Python机器人探测迷宫代码求助
- PWM控制的基本原理
- 清橙OJ A1046 加法器
- 工业机器人调运角度_工业机器人的应用案例