commons-email邮件工具类的基本使用

使用Apache commons轻松发送Email 最近项目上需要使用javamail发送邮件,在网上搜索了一些资料,发现Apache common下有个Email组件,对javamail进行了封装,灰常的好用。      1.加入maven坐标依赖 org.apache.commons commons-email 1.3.3 阅读详情

相关文章:

JavaMail-使用Java发送邮件

SpringBoot发送邮件


简介:

commons-email是apache提供的一个开源的API,是对javamail的封装,相比之下,apache-mail 显然要好用得多,不过这两者本质上实际是一样的,apache-mail 实际上就是将 javax.mail 中那些让人烦心的邮件配置封装掉了。

引入jar包:

<dependency>

    <groupId>org.apache.commons</groupId>

    <artifactId>commons-email</artifactId>

    <version>1.5</version>

</dependency>

 

以下代码分四部分:

1.发送普通文本邮件。

2.发送带附件的邮件。

3.发送内嵌图片的邮件。

示例:

package com.zzs.commons.mail;

 

import java.net.MalformedURLException;

import java.net.URL;

 

import org.apache.commons.mail.DefaultAuthenticator;

import org.apache.commons.mail.Email;

import org.apache.commons.mail.EmailAttachment;

import org.apache.commons.mail.EmailException;

import org.apache.commons.mail.HtmlEmail;

import org.apache.commons.mail.ImageHtmlEmail;

import org.apache.commons.mail.MultiPartEmail;

import org.apache.commons.mail.SimpleEmail;

import org.apache.commons.mail.resolver.DataSourceUrlResolver;

import org.junit.Test;

 

/**

 * 使用Commons-Email发送邮件

 */

public class CommonsEmailTest {

    /**

     * 发送内容为简单文本的邮件

     */

    @Test

    public void sendSimpleTextEmail() throws EmailException {

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

       Email email = new SimpleEmail();

 

       // 邮件服务器域名

       email.setHostName("smtp.sohu.com");

       // 邮件服务器smtp协议的SSL端口

       email.setSmtpPort(465);

       // 用户名和密码为邮箱的账号和密码

       email.setAuthenticator(new DefaultAuthenticator("用户名", "密码"));

       // SSL安全连接

       email.setSSLOnConnect(true);

       // 设置字符编码方式

       email.setCharset("UTF-8");

 

       // 发件人

       email.setFrom("xxx@sohu.com");

       // 收件人

       email.addTo("xxx@163.com");

//     email.addTo(String... emails);//发送给多人

//     // 抄送

//     email.addCc("xxx");

//     // 密送

//     email.addBcc("xxx");

       // 邮件主题

       email.setSubject("测试邮件");

       // 邮件正文

       email.setMsg("This is a test mail from java application. 哈哈");

       // 发送

       email.send();

    }

 

    /**

     * 发送包含附件的邮件(附件为本地资源)

     */

    @Test

    public void sendEmailsWithAttachments() throws EmailException {

       // 附件类,可以添加本地资源,也可以指定网络上资源,在发送时自动将网络上资源下载发送

       EmailAttachment attachment = new EmailAttachment();

       // 本地路径

       attachment.setPath("E:\\test\\data\\mail\\123.jpg");

       // 定义附件

       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();

    }

 

    /**

     * 发送包含附件的邮件(附件为在线资源)

     */

    @Test

    public void sendEmailsWithOnlineAttachments() throws EmailException, MalformedURLException {

       EmailAttachment attachment = new EmailAttachment();

       attachment.setURL(new URL("https://www.baidu.com/img/bd_logo1.png"));

       attachment.setDisposition(EmailAttachment.ATTACHMENT);

       attachment.setDescription("Baidu logo");

       attachment.setName("Baidu.png");

 

       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 Baidu's logo.");

       email.attach(attachment);

 

       email.send();

    }

 

    /**

     * 发送内容为HTML格式的邮件,内嵌图片

     */

    @Test

    public void sendHTMLFormattedEmail() throws EmailException, MalformedURLException {

       // HTML格式邮件,同时具有MultiPartEmail类所有“功能”

       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");

 

       // 将图片引入html标签

       email.setHtmlMsg("<html>The Baidu logo <br/><img src='cid:" + cid + "'></html>");

 

       email.send();

    }

 

    /**

     * 发送内容为HTML格式的邮件,内嵌图片

     */

    @Test

    public void sendHTMLFormattedEmailWithEmbeddedImages() throws MalformedURLException, EmailException {

 

       // ImageHtmlEmail类通常是用来发送Html格式并内嵌图片的邮件,它拥有所有HtmlEmail的功能,但是图片主要是以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");

       // 这样HTML内容里如果有此路径下的图片会直接内联

       email.setDataSourceResolver(new DataSourceUrlResolver(url));

       String htmlEmail = "这里<img src='https://www.baidu.com/img/bd_logo1.png'>有图片。";

       email.setHtmlMsg(htmlEmail);

 

       email.send();

    }

}

 

Java邮件发送库:commons-email与activation实战指南 当标准的内容处理器无法满足特定需求时,可以编写自定义内容类型处理器来处理特殊的MIME类型或实现特殊的处理逻辑。要创建自定义内容类型处理器,需要按照以下步骤:定义自定义DataContentHandler类:创建一个类并继承自类或其子类,例如。实现接口方法:根据需要实现getData和等接口方法,这样就可以使用你的自定义处理器来处理邮件内容。注册自定义处理器:在应用程序启动时,使用的register方法注册自定义的。 阅读详情

相关推荐

SpringDoc 基本使用指南

SpringDoc 凭借零配置启动注解简洁和深度兼容 Spring 生态的优势,已成为 Spring Boot API 文档的首选工具。自动化- 减少手动维护文档的成本;标准化- 严格遵循 OpenAPI 3 规范;可扩展- 分组、安全控制灵活适配复杂项目。访问即可查看交互式文档(默认路径)

墨鸦的博客 1万+

Apache commons email邮件工具类简介及使用说明

Apache commons email邮件工具类简介及使用说明

qq_25073223的博客 2749

车载智能终端的设计

本文研究的主要内容是车载智能终端的设计,在学习和借鉴国内外在车载电子领域已有的成熟经验的基础上,利用32位嵌入式处理器S344B0X01和μC/OS-Ⅱ实时操作系统技术,针对汽车行驶记录仪、GPS/GPRS的已有设计的不足提出了新的解决方案,并对方案的可行性进行了分析和论证。

weixin_44553616的博客 1415

使用 Apache Commons Email发送邮件就是这么简单的不能再简单了

想要通过程序发送邮件,首先需要有一个邮箱做为发件人,并开启POP3/SMTP服务,获取对应邮箱的授权码,不同的邮箱开启方式和位置不甚相同,以下以163邮箱和QQ邮箱为例说明,其余邮箱可以自行搜索开启方式。163邮箱进入邮箱首页,点击设置,选择下拉选项的“POP3/SMTP/IMAP”,点击进入 POP3/SMTP/IMAP 部分 ,点击“POP3/SMTP服务”后的【开启】,弹出页面,用绑定手机扫码发送短信,发送完毕后可获得授权码。QQ邮箱。

独泪了无痕 7534

【图形学】Loop细分算法及半边结构实现(C++)

文章目录Loop 细分算法介绍增加新顶点更新旧顶点算法实现半边结构半边结构的表示方法半边结构的构造方法创建所有顶点创建所有面及半边半边结构的使用 Loop 细分 顾名思义,网格细分是将粗糙网格精细化的过程,如下动图。Loop细分是众多网格细分算法的一种,Loop细分仅仅对三角形网格模型有效。值得注意的是,虽然叫Loop细分,但是不能理解为“循环”细分,叫这个名字是因为作者的名字是这个而已。 下面是一个粗糙的兔子模型1000个面,进行3次细分 算法介绍 Loop细分算法主要分两步进行 增加新顶点:增加

wk_119的博客 8066

Python自然语言处理 NLTK 库用法入门教程【经典】

@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 本文实例讲述了Python自然语言处理 NLTK 库用法。分享给大家供大家参考,具体如下: 在这篇文章中,我们将基于 Python 讨论自然语言处理(NLP)。本教程将会使用 Python NLTK 库。NLTK 是一个当下流行的,用于自然语言处理的 Python 库。 那么 NLP 到底是什么?学习 NLP 能带来什么好处? ...

python函数基础教程 1万+

邮件发送之commons-email

jar包下载地址: https://repo1.maven.org/maven2/javax/mail/mail/1.5.0-b01/mail-1.5.0-b01.jar https://www-eu.apache.org/dist//commons/email/binaries/commons-email-1.5-bin.zip 以下实例均为QQ邮箱或网易邮箱测试,不同类型邮箱发送者参...

qq_37575994的博客 2269

python特征选择pso_【来点干货】机器学习中常用的特征选择方法及非常详细的Python实例...

花费了很长时间整理编辑,转载请联系作者授权,违者必究。特征选择(Feature selection)是在构建预测模型的过程中减少输入变量的一个过程。它是机器学习中非常重要的一步并在很大程度上可以提高模型预测精度。这里我总结了一些机器学习中常见的比较有用的特征选择方法并附上相关python实现code。希望可以给大家一些启发。首先,我们为什么要进行特征选择呢?它有以下几个优点:减少过拟合:冗余数据常...

weixin_39927158的博客 1161

Apache Commons Email在邮件发送中的应用

今天咱们聊聊Apache Commons Email这个库,它在发送邮件方面可谓是小而美的利器。Apache Commons Email基于JavaMail API,但它提供了更简洁、更易用的接口,让咱们在处理电子邮件发送时可以省去不少麻烦。为什么选它呢?首先,它轻量,无需深入研究复杂的JavaMail API就能快速上手;其次,它功能全面,不论是发送普通文本邮件、HTML邮件,还是带附件的邮件,它都能轻松应对。基础设置。

宋小黑的博客 2801

深入解析poi-tl自定义表格渲染插件中的多级子循环实现

本文深入解析了poi-tl自定义表格渲染插件中的多级子循环实现,详细介绍了其在处理复杂业务数据时的核心价值、实现原理及实战技巧。通过多级子循环机制,开发者可以高效地将层级数据结构渲染到Word表格中,显著提升代码简洁性和维护效率。文章还分享了性能优化和异常处理经验,帮助开发者更好地应用该插件。

weixin_33734785的博客 483

【已解决】WorkBuddy 国内版与国际版共存 + 关闭自动更新 教程

本文介绍在Windows系统中同时安装并共存WorkBuddy国内版与国际版的完整方案,通过修改product.json文件关闭启动自动更新,修复缓存配置污染问题,确保两版本互不干扰、数据独立。重点解决因共享身份标识导致的更新源错乱、进程锁冲突及自动覆盖风险,提供命令行备份与修改步骤,并强调手动升级时需避免使用应用内更新功能,以规避平台参数错位缺陷。

人生是一场修行 1469

【commons】邮件发送工具——commons-email

一、概述   直接通过官网的overview进行了解,一句话概括如下: Commons Email aims to provide a API for sending email. It is built on top of the Java Mail API, which it aims to simplify. Commons Email 旨在提供发送邮件的API,它是简历在Java...

weixin_30825199的博客 384

[STC32G144K246入门第一步]点亮LED

STC32G144K246是一款高性能32位8051单片机,集成了丰富外设资源,适用于工业控制和复杂算法处理。该芯片支持双模式内核,内置硬件加速器,提供246KB Flash和144KB SRAM存储空间。文章详细介绍了开发环境搭建步骤、寄存器配置方法,并给出了LED驱动示例代码,通过推挽输出控制P42口实现闪烁效果。虽然开发环境相比ARM存在不足,但通过合理配置仍可满足项目需求。该教程为开发者快速上手STC32G144K246提供了实用参考。

sinat_58149788的博客 795

Java Email 的简单使用

其它:Spring 中 Environment 的用法 一、Commons-Email 的使用: &lt;dependency&gt;             &lt;groupId&gt;org.apache.commons&lt;/groupId&gt;             &lt;artifactId&gt;commons-email&lt;/artifactId&gt;  ...

fansanjian的博客 7820

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

java利用commons-email发送邮件并进行封装

本例中利用commons-email发送邮件并进行封装,支持html内容和附件;Commons Email是Apache的Commons子项目下的一个邮件客户端组件,它是基于JavaMail的,大大简化了邮件的收发操作。 所需jar包:commons-email-1.4.jar和mail.jar ,jar包下载地址 http://files.cnblogs.com/files/haha1...

weixin_30390075的博客 614

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

用commons-mail发送邮件

Apache的commons-mail对javamail进行了更好的封装,发送邮件更加方便。 引入commons-mail包 使用Maven的方式引入包 dependency> groupId>org.apache.commonsgroupId> artifactId>commons-emailartifactId> ve

脚踏一方土的博客 2699

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java实现QQ邮件群发功能

在生活中,我们在编写 java 代码时,一般都会 try...catch 包裹住可能会出现异常的代码块。但如果在一个java项目过大,同时又出现了bug时,这很不利于我们来查错。 所以我们就可以使用邮件,可以自己写一个邮件工具类,使用 try...catch 处理时,就可以使用邮件类每次发现问题时,向指定的邮箱发送一封邮件。 邮件工具类除了以上的用法,我们也可以自己写个QQ邮件群发。 首先是需要把邮件工具类给写出来: 这里使用IDEA,首先创建一个 ...

m0_52066789的博客 1059

SpringBoot之邮件发送

之前工作有一个每天监控日志的需求,周末在家就会很不方便监控,需要远程或者vpn等方式解决,这时候就需要一个小项目来解决这种情况,通过思考我决定使用SpringBoot的框架写一个每天定时发日志到我邮箱,这样就解决了这个问题。 至于为什么选择SpringBoot,明明选择普通的java基础项目就可以这个问题,主要是我看中SpringBoot的轻便和简捷(主要是因为懒,哈哈),再则也能巩固一下SpringBoot的项目搭建使用等问题。 本文着重讲怎么实现邮件发送功能,若需要了解SpringBoot中的定时,可以

南风过境 345

JavaUtil_09_email_使用 commons-email 发送邮件

二、参考资料 1.【commons】邮件发送工具——commons-email 转载于:https://www.cnblogs.com/shirui/p/8423762.html

didi9310的博客 165

Apache commons-Email中文问题的解决办法

Apache commons-email是对javamailAPI的一层封装,经封装后的发送邮件的代码变得极为简单,但这里有一个中文支持的小问题。 commons-email主要的封装类是Email类,这是一个抽象类,该框架给出了SimpleEmail的默认实现,但该实现并不支持中文,即使调用Email的setCharset也不起作用。 事 实上,SimpleEmail调用了Email超类中的se...

狂奔 Lion 500

Apache Commons Email 简单使用

Commons Email aims to provide a API for sending email. It is built on top of the Java Mail API, which it aims to simplify. Some of the mail classes that are provided are as follows: SimpleEmail - This class is used to send basic text based emails. MultiPar

yuaoi的学习空间 1万+

使用commons-email发邮件

使用commons-email发邮件 commons-email是apache提供的一个开源的API,是对javamail的封装,因此在使用时要将javamail.jar加到cl

null 2635

commons-email实现发送qq及163邮箱【推荐】

163邮箱开启服务功能 jar包 commons-email qq打开邮箱服务 代码 import org.apache.commons.mail.DefaultAuthenticator; import org.apache.commons.mail.Email; import org.apache.commons.mail.EmailException; import org.apache...

whsAf007的博客 5958

Apache Commons Email 使用教程

Apache Commons Email 使用教程 1. 项目的目录结构及介绍 Apache Commons Email 是一个用于发送电子邮件的 Java 库,它基于 Java Mail API 并旨在简化邮件发送过程。以下是项目的目录结构及其介绍: commons-email/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ ├── o...

gitblog_00592的博客 656

Commons-Email收发邮件[apache]

原文地址:http://commons.apache.org/proper/commons-email/userguide.html 一个简单的文本电子邮件 Our first example will create a basic email message to "John Doe" and send it through your Google Mail (GMail)...

u010421562的博客 1238
上一篇: commons-dbutils数据库工具包的基本使用
下一篇: commons-io工具包的基本使用
淋雨一直走啊
博客等级 码龄11年 39粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值