使用JavaMail发送邮件,465端口开启ssl加密传输
自己的项目在本地发邮件没任何问题。但部署到服务器,发送邮件显示连接异常。原来是云服务器出于安全考虑,关闭了服务器的25端口,而25端口是smtp的默认端口。所以使用465端口开启ssl加密传输
代码:
package cn.lzhhuo.login_register.util;import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.security.Security;
import java.util.Date;
import java.util.Properties;public class MailUtil {/*** 使用加密的方式,利用465端口进行传输邮件,开启ssl* @param to 为收件人邮箱* @param message 发送的消息*/public static void sendEmil(String to, String message) {try {Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";//设置邮件会话参数Properties props = new Properties();//邮箱的发送服务器地址props.setProperty("mail.smtp.host", "smtp.qq.com");props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);props.setProperty("mail.smtp.socketFactory.fallback", "false");//邮箱发送服务器端口,这里设置为465端口props.setProperty("mail.smtp.port", "465");props.setProperty("mail.smtp.socketFactory.port", "465");props.put("mail.smtp.auth", "true");final String username = " ";final String password = " ";//获取到邮箱会话,利用匿名内部类的方式,将发送者邮箱用户名和密码授权给jvmSession session = Session.getDefaultInstance(props, new Authenticator() {protected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(username, password);}});//通过会话,得到一个邮件,用于发送Message msg = new MimeMessage(session);//设置发件人msg.setFrom(new InternetAddress(username));//设置收件人,to为收件人,cc为抄送,bcc为密送msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(to, false));msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(to, false));//设置邮件消息msg.setSubject("激活邮件");msg.setText(message);//设置发送的日期msg.setSentDate(new Date());//调用Transport的send方法去发送邮件Transport.send(msg);} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) throws Exception { // 做测试用String content="点击激活";MailUtil.sendEmil(" @qq.com",content);System.out.println("发送成功");}
}
可能出现的问题:
无法连接到SMTP主机:smtp.qq.com,端口:465:
pom.xml配置错了:
使用默认25端口发送邮件
使用JavaMail发送邮件,465端口开启ssl加密传输相关推荐
- Docker MySQL开启SSL加密传输方案
Docker MySQL开启SSL加密传输方案 产品:Docker MySQL 版本: 5.6 环境: CentOS Linux 7 文章目录 Docker MySQL开启SSL加密传输方案 方案背景 ...
- mysql8强制用户开启ssl_MySQL8开启ssl加密
1 概述 MySQL从5.7开始默认开启SSL加密功能,进入MySQL控制台后输入status可以查看ssl的状态,出现下图表示在使用ssl: 另外,ssl加密需要密钥与证书,可以使用openssl手 ...
- mysql8.0 ssl_MySQL8开启ssl加密
1 概述 MySQL从5.7开始默认开启SSL加密功能,进入MySQL控制台后输入status可以查看ssl的状态,出现下图表示在使用ssl: 另外,ssl加密需要密钥与证书,可以使用openssl手 ...
- MySQL8开启SSL加密
1 概述 MySQL从5.7开始默认开启SSL加密功能,进入MySQL控制台后输入status可以查看SSL的状态,出现下图表示在使用SSL: 另外,加密连接需要密钥与证书,可以使用OpenSSL手动 ...
- tomcat ssl加密传输
tomcat ssl加密传输 ************* jdk 制作安全证书 keytool -h [root@centos keytool]# keytool -h 密钥和证书管理工具命令:-ce ...
- php 465端口发送邮件,云服务器使用SSL加密465端口发信样例及Demo
适用场景 因服务器的25端口默认封闭,需要使用SSL加密端口(通常是465)来对外发信,以下样例适用于程序调用外部邮箱发信的场景,调用的邮箱服务器需要支持SSL加密.这里介绍.NET和PHP的样例,其 ...
- java ssl 加密传输_java线程之四 SSL加密传输
网络传输是存在风险的,因此对服服务端和客户端进行安全校验和传输信息的加密就显得非常的重要. 上面一句有点拗口,简单解释如下文: 当客户使用SSL向站点服务器发送请求时,服务器向客户端发送一个证书,客户 ...
- WAS和IHS配置SSL 加密传输
1 密钥库 1.1 IHS密钥库和证书 1.1.1 建立密钥数据库文件 1. 进入新建密钥数据库文件界面. 2. 密钥数据库类型选择CMS,确定文件名(IHSkey.kdb) ...
- 阿里云服务器 通过JavaMail发送邮箱STMP问题( 25端口被禁用 使用SSL协议465端口)
我们传统使用的比较简单的是 STMP 25端口收发邮件 今天发现刚购买的阿里云服务器不能作为客户端通过STMP 25端口发送邮件 开始在网上有说发现是JDK1.8的原因,然后自己也把JDK1.8换到了 ...
最新文章
- 如何使用:before和:after伪元素?
- [GXYCTF2019]CommonModulusAttack
- MySQL学习笔记_7_MySQL常用内置函数
- 在 ubuntu 上编译 qtopia-2.2.0问题
- 计算机四级信息安全题,2014年计算机四级考试信息安全工程精选真题
- RedHat Linux安装Informix v10.x(图文详解)
- 机器学习实战 Tricks
- AT91SAM9260EK总是出现有RomBOOT提示但是却无法连接SAM-BA的方法
- 服务器2012系统登录密码忘记6,Server2012忘记管理员密码的处理方法
- 《非诚勿扰》原声大碟
- 中考考试的指令广播_2016中招考试广播指导语
- 【实用工具系列之爬虫】python实现爬取代理IP(防 ‘反爬虫’)
- CTFshow——命令执行
- R实战| 雷达图(Radar Chart)
- java基础火车站售票(线程安全)
- ITIL,是否已是昨日黄花
- Python基本语法(二)
- API卡_[api]必应词典查询api,naive implementation
- 百度文库的wenku前边加wap就能复制,优酷播放页youku后加xia就能直接下载视频
- 股票短线小助手2.0
热门文章
- matplotlib 知识点整理:ax与figure
- pytorch 笔记 :实现Dropout
- 拉格朗日插值法的MATLAB源程序
- 基于云计算的海量数据挖掘
- hadoop学习-倒排索引
- Django startproject的问题
- android jni fork()子进程不运行_安卓系统最重要的进程之一:system_server详细分析...
- python 统计list中各个元素出现的次数
- A folder failed to be moved——Android SDK的安装问题解决方案
- android tesseract-ocr实例教程(包含中文识别)(附源码)