[Java工具] 邮件发送工具
注册邮箱
去163邮箱(或其他邮箱)注册一个邮箱,并开启SMTP授权码。
程序
需要注意的是,由于阿里云服务器不让使用默认的25端口,所以会出现Windows下测试发送邮件成功,Linux服务器下发送邮件却出错的问题(broke pipe、timeout、can not connect等)。解决办法是使用带SSL的465端口。
package com.kuyuntech.util;import java.security.Security;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;/*** 邮件发送工具类*/
public class EmailUtils {/*** 发送邮件的方法* @param toUser :收件人* @param title :标题* @param content :内容*/public static void sendMail(String toUser,String title,String content) throws Exception {// 你自己的邮箱和授权码final String username = "xxxxx@163.com";//自己的邮箱final String password = "xxxxxxxxxx";//授权码,需要登录163邮箱,在设置里设置授权码。授权码用于替代密码Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";Properties props = System.getProperties();props.setProperty("mail.smtp.host", "smtp.163.com");props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);props.setProperty("mail.smtp.socketFactory.fallback", "false");props.setProperty("mail.smtp.port", "465");// 不能使用25端口,因为阿里云服务器禁止使用25端口,所以必须使用ssl的465端口props.setProperty("mail.smtp.socketFactory.port", "465");props.put("mail.smtp.auth", "true");Session session = Session.getDefaultInstance(props, new Authenticator(){protected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(username, password);}});// -- Create a new message --Message msg = new MimeMessage(session);// -- Set the FROM and TO fields --msg.setFrom(new InternetAddress(username));msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(toUser,false));msg.setSubject(title);msg.setText(content);msg.setSentDate(new Date());Transport.send(msg);}public static void main(String[] args) throws Exception {sendMail("1802226517@qq.com","标题","Hello!");}
}
[Java工具] 邮件发送工具相关推荐
- JAVA 邮件发送工具类
1.封装邮件接收地址MODEL和邮件信息MODEL package com.sicdt.jnzxgzc.common.mail.model;import java.io.Serializable; / ...
- Java 基于mail.jar 和 activation.jar 封装的邮件发送工具类
准备工作 发送邮件需要获得协议和支持! 开启服务 POP3/SMTP 服务 如何开启 POP3/SMTP 服务:https://blog.csdn.net/weixin_44953227/articl ...
- 封装一个邮件发送工具类,一个字,巴适
系列文章目录 文章目录 系列文章目录 前言 一. 介绍 二.二话不说开始干 1.引入库 2. 邮件发送实体(Mail) 3. 邮件发送类型枚举(MailType ) 4.邮件发送抽象类(Abstrac ...
- SMTP 协议邮件发送工具封装
文章目录 1. 前言 1.1 说明 1.2 建议 1.3 源码 2. 发件人邮箱开通smtp 服务 2.1 为什么开通smtp 服务 2.2 开启服务的步骤 2.3 普通邮箱开启服务图文 3. 工具类 ...
- 用java实现邮件发送验证码
java实现邮件发送验证码 网易邮箱开通POP3SMTP服务的步骤 java实现邮件发送验证码 建议不要用qq邮箱,我使用qq邮箱直接一直给我报530错误,我一直认为我代码写的有错误或者POP3/SM ...
- Java Mail 邮件发送(一):入门Demo
本文首发于简书,Java Mail 邮件发送(一):Demo 上周公司的项目要求开发邮件发送功能.自己在网上跟着教程边学边做了一下午,现在基本开发完成了.由于一个同事也想看下该怎么写,顺便学习下.所以 ...
- java实现邮件发送, 抄送及多附件发送
java实现邮件发送, 抄送及多附件发送 所需的jar包 mailapi.jar和smtp.jar 或 javax-mail-xxx.jar(如javax.mail-1.5.6.jar) ht ...
- 用java实现邮件发送
电子邮件 1.基础知识铺垫 要在网络上实现邮件功能,必须要有专门的邮件服务器. 这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过的邮件,并把邮件投递到邮件接收者的电子邮箱中. SMTP服 ...
- Java(83)Java发邮件简单工具类
1.Maven引用 <!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api --><dependency& ...
最新文章
- 现在学java还是python好_该学Java还是Python?
- 借双慧眼识别钓鱼欺诈网站
- java %1$s_%1$s %1$d Android string (java Android 格式化字符串)
- python 对axis的理解
- 【问题1】为什么连接的时候是三次握手,关闭的时候却是四次握手?
- html输入框只能输入几个,input 两个input框只能允许同时输入一个
- mysql 自增id replace_MySQL--REPLACE INTO与自增
- SpringBoot 整合Redis 单机、哨兵、集群
- 宽容随和 不失勤恳 充满信心--对工作、生活的一些感悟
- (01)System Verilog 程序数据采集
- c#的内存管理(托管及未托管对象管理)
- vue||简易版音乐播放器
- grads插值_利用grads描述文件中的pdef做插值的实用方法,转模式的同学看过来~~...
- 月神带你逻辑漏洞挖掘
- 云服务器怎么安装声音驱动_GPU云服务器如何安装NVIDIA Tesla驱动
- 中国IT工作者35岁后的发展出路调查报告(4)
- 表或视图不存在的解决方法
- 热血传奇手游IOS辅助哪个好呢?
- linux上面跑lvgl GUI简单实例
- flash 位图缓冲
热门文章
- 6-2 多项式求值 (15 分)
- php 开发百度聚合,百度地图api-百度地图API开发,使用MarkerClusterer进行点聚合的问题...
- 力扣69-x的平方根(解决一个问题:我的答案和题解很像,但是为什么过不了?C++、Java版)
- 6-2 有序数组的插入 (20分)
- 关于QR二维码的编码模式
- 实验验证离散余弦变换和简单压缩应用,显示对应的原图,dct图和恢复的图像
- java 分层领域模型_Java领域模型 | 学步园
- c语言中typeof关键字
- scrapy不抓取重复的网页解决办法
- flex布局问题整理