热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用commonsemail发送邮件

使用commonsemail发送邮件在项目中,一直来是使用spring对javamail的封装,来发邮件的。虽然spring的封装已经大大简化了发送邮件

使用commons email发送邮件

在项目中,一直来是使用spring对java mail的封装,来发邮件的。虽然spring的封装已经大大简化了发送邮件的复杂度,但是今天要介绍下apache commons email组件,对java mail进行了更好的封装,对于客户端的调用,已经是相当地方便了。



commons-email maven库地址:



  commons-email

  commons-email

  1.1





commons-email实现是相当的简单,下面介绍下几个重要的类实现



1)Email

一个抽象类,对java mail进行了封装,提供主要接口如下

setHostName(String):设置smtp服务器地址

setSmtpPort(int):设置smtp服务器端

setAuthenticator(Authenticator):设置授权帐号和密码

setSSL(boolean ssl):是否采用ssl方式连接服务



setMailSession(Session):设置与服务器连接session



setCharset(String):设置邮件主体编码



setFrom(String):设置发件人地址

addTo(String):添加收件人地址

addCc(String):添加抄送人地址

addBcc(String):添加密送人地址

addReplyTo(String):添加回复人地址



setSubject(String):设置邮件标题

setMsg(String):设置邮件主体



send():发送邮件



2)SimpleEmail

继承Email,实现了setMsg(String msg)方法,发送文本格式邮件,调用非常简单


SimpleEmail email = new SimpleEmail();
email.setSSL(
true);
email.setSmtpPort(SMTP_PORT);
email.setHostName(SMTP_SERVER);
email.setAuthentication(USER_NAME, PASSWORD);
email.addTo(
"**@**.com");
email.setFrom(
"**@**.com");
email.setSubject(
"subject");
email.setCharset(
"GBK");
email.setMsg(
"message");
email.send();



3)MultiPartEmail

继承Email,多了一个添加附件的方法:

attach(URL, String, String)

attach(URL, String, String, String)

attach(DataSource, String, String)

attach(DataSource, String, String, String)

attach(EmailAttachment)



调用方式如下:


MultiPartEmail email = new MultiPartEmail();
email.setSSL(
true);
email.setSmtpPort(SMTP_PORT);
email.setHostName(SMTP_SERVER);
email.setAuthentication(USER_NAME, PASSWORD);
email.addTo(
"**@**.com");
email.setFrom(
"**@**.com");
email.setSubject(
"subject");
email.setCharset(
"GBK");
email.setMsg(
"message");
email.attach(
"file:///***.pom.xml""pom.xml""pom"); 
email.send();





4)HtmlEmail

继承MultiPartEmail,与SimpleEmail相比,多了一个setHtmlMsg(String msg)方法,用户设置html格式内容,调用方式同SimpleEmail几乎一致


HtmlEmail email = new HtmlEmail();
email.setSSL(
true);
email.setSmtpPort(SMTP_PORT);
email.setHostName(SMTP_SERVER);
email.setAuthentication(USER_NAME, PASSWORD);
email.addTo(
"**@**.com");
email.setFrom(
"**@**.com");
email.setSubject(
"subject");
email.setCharset(
"GBK");
email.setHtmlMsg(
"this is email message!");
email.send();



当然,commons email只提供了对smtp协议的封装,不包括对pop协议的封装,所以只能发送邮件,不能接受邮件。
推荐阅读
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文探讨了在 ASP.NET MVC 5 中实现松耦合组件的方法。通过分离关注点,应用程序的各个组件可以更加独立且易于维护和测试。文中详细介绍了依赖项注入(DI)及其在实现松耦合中的作用。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • Struts与Spring框架的集成指南
    本文详细介绍了如何将Struts和Spring两个流行的Java Web开发框架进行整合,涵盖从环境配置到代码实现的具体步骤。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
author-avatar
jelly62_736
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有