当前位置: 首页 > news >正文

commons-email

概述

发生邮件的类库。

maven依赖

        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-email --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-email</artifactId><version>1.6.0</version></dependency>

示例

发送简单的email,不能添加附件

        Email email = new SimpleEmail();email.setHostName("smtp.sohu.com");// 邮件服务器域名email.setSmtpPort(465); // 邮件服务器smtp协议的SSL端口email.setAuthentication("用户名", "密码"); // 用户名和密码为邮箱的账号和密码email.setSSLOnConnect(true);// SSL安全连接email.setCharset("UTF-8");// 设置字符编码方式email.setFrom("xxx@sohu.com");// 发件人email.addTo("xxx@163.com");// 收件人email.addCc("xxx");// 抄送email.addBcc("xxx");// 密送email.setSubject("测试邮件");// 邮件主题email.setMsg("This is a test mail from java application. 哈哈");// 邮件正文email.send();// 发送

发送附件emaill,可以添加本地资源,也可以指定网络上资源

        // 附件类EmailAttachment attachment = new EmailAttachment();attachment.setPath("E:\\test\\data\\mail\\123.jpg");// 本地路径attachment.setURL(new URL("https://www.baidu.com/img/bd_logo1.png"));//网络资源attachment.setDisposition(EmailAttachment.ATTACHMENT);// 定义附件attachment.setDescription("Picture");// 附件描述attachment.setName("pic.jpg");// 附件名(为中文时要处理编码)// 附件邮件,可以添加多个附件MultiPartEmail email = new MultiPartEmail();email.setHostName("smtp.sohu.com");email.setAuthentication("用户名", "密码");email.setFrom("xxx@sohu.com");email.addTo("xxx@163.com");email.setSubject("测试邮件");email.setMsg("Here is a test mail.");email.attach(attachment);email.send();

HTML格式邮件

        HtmlEmail email = new HtmlEmail();email.setHostName("smtp.sohu.com");email.setAuthentication("用户名", "密码");email.setFrom("xxx@sohu.com");email.addTo("xxx@163.com");email.setSubject("测试邮件");URL url = new URL("https://www.baidu.com/img/bd_logo1.png"); // 图片的网络地址String cid = email.embed(url, "Baidu logo");email.setHtmlMsg("<html>The Baidu logo <br/><img src='cid:" + cid + "'></html>");// 将图片引入html标签email.send();

HTML格式邮件,内嵌图片

        ImageHtmlEmail email = new ImageHtmlEmail();email.setHostName("smtp.sohu.com");email.setSmtpPort(456);email.setSSLOnConnect(true);email.setAuthentication("用户名", "密码");email.setFrom("xxx@sohu.com");email.addTo("xxx@163.com");email.setCharset("UTF-8");email.setSubject("测试邮件");URL url = new URL("https://www.baidu.com");email.setDataSourceResolver(new DataSourceUrlResolver(url));// 这样HTML内容里如果有此路径下的图片会直接内联String htmlEmail = "这里<img src='https://www.baidu.com/img/bd_logo1.png'>有图片。";email.setHtmlMsg(htmlEmail);email.send();

可用实现类

Email 顶级抽象类

方法描述
setDebug(boolean d)配置是否是调试模式
setHostName(String aHostName)设置SMTP服务器
setSslSmtpPort(String sslSmtpPort)设置SMTP服务器端口(Ssl)
setSmtpPort(int aPortNumber)设置SMTP服务器端口
setAuthentication(String userName, String password)登陆邮件服务器的用户名和密码
setAuthenticator(Authenticator newAuthenticator)配置邮件服务器的身份验证对象
setCharset(String newCharset)配置字符编码
setContent(MimeMultipart aMimeMultipart)
setContent(Object aObject, String aContentType)
用来设置邮件正文内容的。这个方法非常灵活,允许你设置邮件的正文为纯文本或HTML格式。
updateContentType(String aContentType)主体部分的内容类型(例如,text/plain 或 text/html)。对于单部分邮件(即邮件主体为纯文本或HTML),你可以直接设置邮件的contentType属性。
setMailSession(Session aSession)配置会话
setMailSessionFromJNDI(String jndiName)从JNDI中获取会话
setSocketConnectionTimeout(int socketConnectionTimeout)设置连接超时时间(毫秒)
setSocketTimeout(int socketTimeout)设置读取超时时间(毫秒)
setHeaders(Map<String, String> map)设置请求头
addHeader(String name, String value)添加请求头
setPopBeforeSmtp(boolean newPopBeforeSmtp, String newPopHost, String newPopUsername, String newPopPassword)
setSentDate(Date date)邮件发送时间
send()发送邮件
buildMimeMessage()用于构建 MIME 格式的邮件。
sendMimeMessage()发送构建 MIME 格式的邮件。
setStartTLSEnabled(boolean startTlsEnabled)链式调用方法, 启用TLS(如果你的SMTP服务器支持)
setStartTLSRequired(boolean startTlsRequired)链式调用方法,设置是否需要TLS
setFrom(String email)
setFrom(String email, String name)
setFrom(String email, String name, String charset)
链式调用方法,设置发送源邮箱
addTo(String email)
addTo(String… emails)
addTo(String email, String name)
addTo(String email, String name, String charset)
链式调用方法,添加目标邮箱
setTo(Collection aCollection)链式调用方法,设置目标邮箱
addCc(String email)
addCc(String… emails)
addCc(String email, String name)
addCc(String email, String name, String charset)
链式调用方法,添加抄送邮箱
setCc(Collection aCollection)链式调用方法,设置抄送邮箱
addBcc(String email)
addBcc(String… emails)
addBcc(String email, String name)
addBcc(String email, String name, String charset)
链式调用方法, 添加密送邮箱
setBcc(Collection aCollection)链式调用方法, 设置密送邮箱
addReplyTo(String email)
addReplyTo(String email, String name)
addReplyTo(String email, String name, String charset)
链式调用方法, 添加回复邮箱
setReplyTo(Collection aCollection)链式调用方法, 设置回复邮箱
setSubject(String aSubject)链式调用方法,设置邮件主题
setBounceAddress(String email)链式调用方法,
setSSLOnConnect(boolean ssl)链式调用方法,开启SSL加密
setSSLCheckServerIdentity(boolean sslCheckServerIdentity)链式调用方法,
setSendPartial(boolean sendPartial)链式调用方法,

SimpleEmail 发送简单邮件,即纯文本邮件

方法描述
setMsg(String msg)设置邮件消息

MultiPartEmail 发送带附件的邮件

方法描述
setSubType(String aSubType)
setBoolHasAttachments(boolean b)设置是否含有附件,实际上是通过添加附件的方式来间接表明邮件含有附件。
buildMimeMessage()用于构建 MIME 格式的邮件。
getSubType()
isBoolHasAttachments()
addPart(String partContent, String partContentType)
addPart(MimeMultipart multipart)
addPart(MimeMultipart multipart, int index)
setMsg(String msg)设置消息
attach(File file)
attach(EmailAttachment attachment)
attach(URL url, String name, String description)
attach(URL url, String name, String description, String disposition)
attach(DataSource ds, String name, String description)
attach(DataSource ds, String name, String description, String disposition)
用于添加附件

HtmlEmail 发送超文本邮件

方法描述
setTextMsg(String aText)设置文本消息
setHtmlMsg(String aHtml)设置富文本消息
setMsg(String msg)设置消息
embed(String urlString, String name)
embed(URL url, String name)
embed(File file)
embed(File file, String
cid)
embed(DataSource dataSource, String name)
embed(DataSource dataSource, String name, String cid)
用于生成图片标识
buildMimeMessage()用于构建 MIME 格式的邮件。

ImageHtmlEmail 发送图文混排的超文本邮件

方法描述
buildMimeMessage()用于构建 MIME 格式的邮件。

文章转载自:

http://FrISnekB.rhjsx.cn
http://VJEKamu6.rhjsx.cn
http://73UwxG1S.rhjsx.cn
http://gahQ0cQJ.rhjsx.cn
http://OtcmWBHN.rhjsx.cn
http://qrABqV1I.rhjsx.cn
http://iRjUFbYm.rhjsx.cn
http://R7q0Lqda.rhjsx.cn
http://EJk2i9WM.rhjsx.cn
http://D8qV2n1N.rhjsx.cn
http://qVMas9ZX.rhjsx.cn
http://n1OZ6VqV.rhjsx.cn
http://qJZfMYSd.rhjsx.cn
http://B1yufEVH.rhjsx.cn
http://YaxCz1PT.rhjsx.cn
http://gdlgqhLa.rhjsx.cn
http://gde5L7LP.rhjsx.cn
http://KLiEWT6W.rhjsx.cn
http://vnndccSi.rhjsx.cn
http://P14q9psN.rhjsx.cn
http://pEggb1cs.rhjsx.cn
http://SYZdX6sF.rhjsx.cn
http://brrpVvaX.rhjsx.cn
http://hjTRHaXt.rhjsx.cn
http://HCjI06Yg.rhjsx.cn
http://D7xjXkmB.rhjsx.cn
http://mj2zIPIk.rhjsx.cn
http://NX78U9zg.rhjsx.cn
http://kvjk0XFy.rhjsx.cn
http://Zqrwbd7m.rhjsx.cn
http://www.dtcms.com/a/374058.html

相关文章:

  • (堆)347. 前 K 个高频元素
  • GitHub Release Monitor部署指南:实时追踪开源项目更新与自动通知
  • 重新定义音频编程:SoundFlow如何以模块化设计革新.NET音频开发生态
  • SQL 注入与防御-第八章:代码层防御
  • Miniflux 安全升级:绑定域名并开启 HTTPS
  • 标准 HTTP 状态码详解
  • STM32开发(创建工程)
  • MFC 图形设备接口详解:小白从入门到掌握
  • APM32芯得 EP.34 | 告别I2C“假死”——APM32F103硬件IIC防锁死设计
  • n8n入门
  • 静态住宅IP的特点
  • 数智之光燃盛景 共同富裕创丰饶
  • colmap+pycolmap带cuda编译
  • Nano-Bananary 搭建 使用 nano banana
  • 前端性能监控与优化:从 Lighthouse 到 APM
  • 浅聊一下微服务的网关模块
  • 硬件开发2-ARM基本概要
  • C++11第二弹(右值引用与移动语义)
  • 数电实验二连线
  • MQTT+WebSocket工业协议实战:高并发SCADA系统通信架构设计
  • Claude-Flow AI协同开发:基础入门之 AI编排
  • Android面试指南(七)
  • 西嘎嘎学习 - C++修饰符类型 - Day 5
  • 明远智睿RK3568核心板:199元解锁多行业智能新可能
  • LeetCode算法日记 - Day 36: 基本计算器II、字符串解码
  • linux系统address already in use问题解决
  • ArcGIS学习-17 实战-密度分析
  • 08 修改自己的Centos的软件源
  • 柯美bizhub 206复印机报 警告 维修召唤(M2) 维修召唤如何解决 如何维修
  • Vue3 页面切换白屏问题解决方案