腾讯邮件服务器发送慢,通过腾讯邮件服务器发送HTML邮件

邮件发送工具:

private static String host = "smtp.exmail.qq.com";// 服务器地址

private static String port = "465";// 端口

private static String protocol = "smtp";// 协议

public static Session initProperties(String account, String password) {

Properties properties = new Properties();

properties.setProperty("mail.transport.protocol", protocol);

properties.setProperty("mail.smtp.host", host);

properties.setProperty("mail.smtp.port", port);

// 使用smtp身份验证

properties.put("mail.smtp.auth", "true");

// 开启安全协议

MailSSLSocketFactory mailSSLSocketFactory = null;

try {

mailSSLSocketFactory = new MailSSLSocketFactory();

mailSSLSocketFactory.setTrustAllHosts(true);

} catch (GeneralSecurityException e) {

e.printStackTrace();

}

properties.put("mail.smtp.enable", "true");

properties.put("mail.smtp.ssl.socketFactory", mailSSLSocketFactory);

properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

properties.put("mail.smtp.socketFactory.fallback", "false");

properties.put("mail.smtp.socketFactory.port", port);

Session session = Session.getDefaultInstance(properties, new Authenticator() {

@Override

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(account, password);

}

});

session.setDebug(true);

return session;

}

/**

* @Description: 发送邮件

* @Title: send

* @date 2019-10-08 17:12

* @param @param sender发件人别名

* @param @param subject邮件主题

* @param @param content接收者列表,多个接收者之间用","隔开

* @param @param receiverList

* @param @param fileSrc 附件地址

* @return void 返回类型

* @throws @return void

* @param sender

* @param subject

* @param content

* @param receiverList

* @param fileSrc

*/

public void send(String sender, String subject, String content, String receiverList, String fileSrc, String account,

String password) {

try {

Session session = initProperties(account, password);

MimeMessage mimeMessage = new MimeMessage(session);

mimeMessage.setFrom(new InternetAddress(account, sender));// 发件人,可以设置发件人的别名

// 收件人,多人接收

InternetAddress[] internetAddressTo = new InternetAddress().parse(receiverList);

mimeMessage.setRecipients(Message.RecipientType.TO, internetAddressTo);

// 主题

mimeMessage.setSubject(subject);

// 时间

mimeMessage.setSentDate(new Date());

// 容器类 附件

MimeMultipart mimeMultipart = new MimeMultipart();

// 附件

MimeBodyPart bodyPart = new MimeBodyPart();

// 设置内容

bodyPart.setContent(content, "text/html; charset=UTF-8");

mimeMultipart.addBodyPart(bodyPart);

// 添加图片&附件

bodyPart = new MimeBodyPart();

bodyPart.attachFile(fileSrc);

mimeMultipart.addBodyPart(bodyPart);

mimeMessage.setContent(mimeMultipart);

mimeMessage.saveChanges();

Transport.send(mimeMessage);

} catch (MessagingException e) {

e.printStackTrace();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

测试类:

public static void main(String[] args) throws Exception {

String account = "[email protected]";// 登录账户

String password = "xxxxxxxxxxxxxxx";// 登录密码

SendEmailUtil tenMailUtil = new SendEmailUtil();

tenMailUtil.send("发件人别名", "邮件主题", "

HhhhHHHHHHH

",

"[email protected],[email protected]", "C:/Users/Administrator/Desktop/index.html", account,

password);

}

原文:https://www.cnblogs.com/yhm9/p/11642775.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker 部署一个用 Python 编写的 Web 应用

文章目录1. 安装 docker2. 编写代码3. 编写 Dockerfile4. 上传镜像5. 修改镜像learn from 《深入剖析Kubernetes》1. 安装 docker 在 WSL2 中安装 docker https://www.runoob.com/docker/ubuntu-docker-install.html 会报错: # Executing docker install script, …

三维网格精简算法java版_几种常见算法的精简版-

1 packagetest;23 importjava.nio.channels.SelectableChannel;45 importcom.itqf.bean.User;67 public classcTypeCode {89 /********************************************希尔排序和插入排序*******推荐严慧敏的那本数据结构,思想步骤我都加入到算法里面了&#…

DokuWiki 命名空间管理

为了更好的组织结构,Dokuwiki提供了命名空间这个功能,那怎么管理命名空间的,其实可以安装插件去管理 Add New Page Plugin:新建界面 https://www.dokuwiki.org/plugin:addnewpage Move Plugin:方便移动页面和命名空间 …

css样式子绝父相,子绝父相_HTML+CSS前端基础知识教程_腾讯视频

更多资料源码请加3252897743第1天 html 1、HTTP协议 2、html是纯文本3、html骨架4、DTD文档类型5、head标签6、body标签7、html基本语法8、h系列的标签9、p标签10、img标签11、a标签12、div和span含义第2天 html1、无序列表2、有序列表3、定义列表6、表格基础7、合并单元格…

shell命令查阅端口信息_linux运维实用的42个常用命令总结

1.删除0字节文件复制代码代码如下:find -type f -size 0 -exec rm -rf {} \;2.查看进程按内存从大到小排列复制代码代码如下:ps -e -o "%C : %p : %z : %a"|sort -k5 -nr3.按cpu利用率从大到小排列复制代码代码如下:ps -e -o "%C : %p : %z : %a"|sort -nr…

python 代码文件路径注意事项

检查代码的工作路径,是不是代码文件所在路径 导入别处的包 基于该代码的工作路径写如下的代码,加入相对路径,可以找到要导入的文件 import sys import os sys.path.append("../xxx/") sys.path.append("../../xxx") fro…

uva 10635 Prince and Princess(LCS成问题LIS问题O(nlogn))

标题效果&#xff1a;有两个长度p1和q1该序列。的各种元素的每个序列不是相互同。并1~n^2之间的整数。个序列的第一个元素均为1。求出A和B的最长公共子序列长度。 分析&#xff1a;本题是LCS问题&#xff0c;可是p*q<62500,O(pq)的算法显然会LE。在这里有一个条件&#xff0…

微信小程序独立服务器的好处,微信小程序的优势和缺点

原标题&#xff1a;微信小程序的优势和缺点微信小程序从刚开始面世就引起了很多人的关注&#xff0c;虽然截止到目前&#xff0c;官方仍没有大肆宣传和推广&#xff0c;但是微信小程序的所带来的影响还是很大的&#xff0c;甚至让苹果&#xff0c;百度&#xff0c;阿里都头疼不…

LeetCode 2007. 从双倍数组中还原原数组(map)

文章目录1. 题目2. 解题1. 题目 一个整数数组 original 可以转变成一个 双倍 数组 changed &#xff0c;转变方式为将 original 中每个元素 值乘以 2 加入数组中&#xff0c;然后将所有元素 随机打乱 。 给你一个数组 changed &#xff0c;如果 change 是 双倍 数组&#xff…

ajax和rxjs,javascript – RxJS 5 Observable和Angular2 http:调用ajax一次,保存结果,随后的ajax调用使用缓存结果...

下面的代码是我目前拥有的简化版本&#xff1a;name.service.tsInjectable()export class NameService {const nameURL "http://www.example.com/name";getName() {return this.http.get(nameURL);}}name1.component.tsComponent({templateUrl: ./name1.component.h…

怎么画韦布尔分布_手机按键寿命测试的样本数量怎么定?一文看懂 简述威布尔分布及其应用...

有一种手机按键的质量要求是&#xff0c;95%的产品的按压寿命需要达到1万次。根据这一要求&#xff0c;QC部门需要进行1.2万次的按压测试。那么QC部门需要选取多少按键来进行测试&#xff08;不允许有失效&#xff09;&#xff0c;才能保证95%的按键按压寿命达到1万次呢&#x…

Chrome浏览器报错:Origin null is not allowed by Access-Control-Allow-Origin.

问题&#xff1a;Chrome浏览器报错&#xff1a;Origin null is not allowed by Access-Control-Allow-Origin. 原因&#xff1a;.js文件中使用load()方法&#xff0c;而Chrome浏览器出于安全起见&#xff0c;不允许load本地文件。 方法&#xff1a;给Chrome添加启动参数--allow…

LeetCode 2008. 出租车的最大盈利(DP)

文章目录1. 题目2. 解题1. 题目 你驾驶出租车行驶在一条有 n 个地点的路上。 这 n 个地点从近到远编号为 1 到 n &#xff0c;你想要从 1 开到 n &#xff0c;通过接乘客订单盈利。 你只能沿着编号递增的方向前进&#xff0c;不能改变方向。 乘客信息用一个下标从 0 开始的二…

plotplay恢复默认设置_手把手解答win10系统potplayer经常弹出自动更新提示的还原技巧...

电脑犹如汽车&#xff0c;在使用过程中需要正确的方法&#xff0c;否则就会有win10系统potplayer经常弹出自动更新提示的情况出现&#xff0c;要处理win10系统potplayer经常弹出自动更新提示的问题&#xff0c;对于电脑专业人士来说并非难事&#xff1b;新手小白翻遍了整个网络…

华为服务器清除系统日志,清空服务器日志

清空服务器日志 内容精选换一换为加强对系统数据的容灾管理&#xff0c;云堡垒机支持配置日志备份&#xff0c;提高审计数据安全性和系统可扩展性。本小节主要介绍如何在系统配置FTP/SFTP服务器参数&#xff0c;将日志远程备份至FTP/SFTP服务器。开启远程备份后&#xff0c;系统…

动态行转列小记

数据库环境&#xff1a;SQL SERVER 2005 最近在整理数据时&#xff0c;要将查询到的数据张贴到Excel中。在Excel中&#xff0c;要展示的行数是固定的&#xff0c;列数不固定&#xff0c; 一个一个数据的复制张贴太烦人。想了一个偷懒的方法&#xff0c;直接将查询的数据进行行转…

使用swiper_关于使用swiper制作web轮播图

我这个方法是很适用于小白的&#xff0c;利用swiper插件的应用。https://www.swiper.com.cn/这个是swiper中文官网的网址&#xff0c;上面有关于swiper的说明和使用方法。想要用到swiper插件要在官网下载swiper文件&#xff0c;如下图所示&#xff0c;在导航条上面找到下载swip…

服务器换完主板后无盘进不了系统,更换主板后主板认不出硬盘无法进入系统的办法 – 手机爱问...

系统重装技术问题只需要一张系统光盘&#xff0c;和一张随机驱动光盘。如果没有驱动光盘&#xff0c;在安装系统前&#xff0c;用超级兔子或“驱动精灵”。备份驱动程序。安装好系统后恢复驱动即可。其它不需要方法&#xff1a;步骤:首先进入BIOS设置光驱优先。1)首选按Del键进…

动态规划_数字三角形

问题描述&#xff1a;在下面的数字三角形中寻找一条从顶部到底边的路径&#xff0c;使得路径上所经过的数字之和最大&#xff0c;路径上的每一步都只能往左下或右下走。只需要求出这个最大和即可&#xff0c;不必给出具体路径。 输入数据的要求&#xff1a;三角形的行数大于1小…

LeetCode 2012. 数组美丽值求和

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的整数数组 nums 。对于每个下标 i&#xff08;1 < i < nums.length - 2&#xff09;&#xff0c;nums[i] 的 美丽值 等于&#xff1a; 2&#xff0c;对于所有 0 < j < i 且 i < k < nums.length - 1 …