注册邮箱

去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工具] 邮件发送工具相关推荐

  1. JAVA 邮件发送工具类

    1.封装邮件接收地址MODEL和邮件信息MODEL package com.sicdt.jnzxgzc.common.mail.model;import java.io.Serializable; / ...

  2. Java 基于mail.jar 和 activation.jar 封装的邮件发送工具类

    准备工作 发送邮件需要获得协议和支持! 开启服务 POP3/SMTP 服务 如何开启 POP3/SMTP 服务:https://blog.csdn.net/weixin_44953227/articl ...

  3. 封装一个邮件发送工具类,一个字,巴适

    系列文章目录 文章目录 系列文章目录 前言 一. 介绍 二.二话不说开始干 1.引入库 2. 邮件发送实体(Mail) 3. 邮件发送类型枚举(MailType ) 4.邮件发送抽象类(Abstrac ...

  4. SMTP 协议邮件发送工具封装

    文章目录 1. 前言 1.1 说明 1.2 建议 1.3 源码 2. 发件人邮箱开通smtp 服务 2.1 为什么开通smtp 服务 2.2 开启服务的步骤 2.3 普通邮箱开启服务图文 3. 工具类 ...

  5. 用java实现邮件发送验证码

    java实现邮件发送验证码 网易邮箱开通POP3SMTP服务的步骤 java实现邮件发送验证码 建议不要用qq邮箱,我使用qq邮箱直接一直给我报530错误,我一直认为我代码写的有错误或者POP3/SM ...

  6. Java Mail 邮件发送(一):入门Demo

    本文首发于简书,Java Mail 邮件发送(一):Demo 上周公司的项目要求开发邮件发送功能.自己在网上跟着教程边学边做了一下午,现在基本开发完成了.由于一个同事也想看下该怎么写,顺便学习下.所以 ...

  7. java实现邮件发送, 抄送及多附件发送

    java实现邮件发送, 抄送及多附件发送 所需的jar包  mailapi.jar和smtp.jar  或  javax-mail-xxx.jar(如javax.mail-1.5.6.jar)  ht ...

  8. 用java实现邮件发送

    电子邮件 1.基础知识铺垫 要在网络上实现邮件功能,必须要有专门的邮件服务器. 这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过的邮件,并把邮件投递到邮件接收者的电子邮箱中. SMTP服 ...

  9. Java(83)Java发邮件简单工具类

    1.Maven引用 <!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api --><dependency& ...

最新文章

  1. 现在学java还是python好_该学Java还是Python?
  2. 借双慧眼识别钓鱼欺诈网站
  3. java %1$s_%1$s %1$d Android string (java Android 格式化字符串)
  4. python 对axis的理解
  5. 【问题1】为什么连接的时候是三次握手,关闭的时候却是四次握手?
  6. html输入框只能输入几个,input 两个input框只能允许同时输入一个
  7. mysql 自增id replace_MySQL--REPLACE INTO与自增
  8. SpringBoot 整合Redis 单机、哨兵、集群
  9. 宽容随和 不失勤恳 充满信心--对工作、生活的一些感悟
  10. (01)System Verilog 程序数据采集
  11. c#的内存管理(托管及未托管对象管理)
  12. vue||简易版音乐播放器
  13. grads插值_利用grads描述文件中的pdef做插值的实用方法,转模式的同学看过来~~...
  14. 月神带你逻辑漏洞挖掘
  15. 云服务器怎么安装声音驱动_GPU云服务器如何安装NVIDIA Tesla驱动
  16. 中国IT工作者35岁后的发展出路调查报告(4)
  17. 表或视图不存在的解决方法
  18. 热血传奇手游IOS辅助哪个好呢?
  19. linux上面跑lvgl GUI简单实例
  20. flash 位图缓冲

热门文章

  1. 6-2 多项式求值 (15 分)
  2. php 开发百度聚合,百度地图api-百度地图API开发,使用MarkerClusterer进行点聚合的问题...
  3. 力扣69-x的平方根(解决一个问题:我的答案和题解很像,但是为什么过不了?C++、Java版)
  4. 6-2 有序数组的插入 (20分)
  5. 关于QR二维码的编码模式
  6. 实验验证离散余弦变换和简单压缩应用,显示对应的原图,dct图和恢复的图像
  7. java 分层领域模型_Java领域模型 | 学步园
  8. c语言中typeof关键字
  9. scrapy不抓取重复的网页解决办法
  10. flex布局问题整理