Apache Commons Email的Maven依赖

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

使用示例:

 package app.hihn.me.mail.demo;

 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; /**
*
* <pre>
* <h1>Debugging</h1>
* The JavaMail API supports a debugging option that will can be very
* useful if you run into problems. You can activate debugging on any of the
* mail classes by calling setDebug(true). The debugging output will be written
* to System.out.
*
* Sometimes you want to experiment with various security setting or features of
* commons-email. A good starting point is the test class EmailLiveTest and
* EmailConfiguration which are used for testing commons-email with real SMTP
* servers.
*
* </pre>
*
* @describe Apache Commons Email 使用示例
* @author liwen
*
*/
public class SendEmailDemo {
/**
* <pre>
*
* Our first example will create a basic email message to "John Doe" and
* send it through your Google Mail (GMail) account.
*
* The call to setHostName("mail.myserver.com") sets the address of the outgoing SMTP
* server that will be used to send the message. If this is not set, the
* system property "mail.host" will be used.
*
* </pre>
*
* @describe 发送内容为简单文本的邮件
* @throws EmailException
*/
public static void sendSimpleTextEmail() throws EmailException {
Email email = new SimpleEmail();
email.setHostName("smtp.googlemail.com");
email.setSmtpPort(465);
// 用户名和密码为邮箱的账号和密码(不需要进行base64编码)
email.setAuthenticator(new DefaultAuthenticator("username", "password"));
email.setSSLOnConnect(true);
email.setFrom("user@gmail.com");
email.setSubject("TestMail");
email.setMsg("This is a test mail ... :-)");
email.addTo("foo@bar.com");
email.send();
} /**
* <pre>
*
* To add attachments to an email, you will need to use the MultiPartEmail
* class. This class works just like SimpleEmail except that it adds several
* overloaded attach() methods to add attachments to the email. You can add
* an unlimited number of attachments either inline or attached. The
* attachments will be MIME encoded.
*
* The simplest way to add the attachments is by using the EmailAttachment
* class to reference your attachments.
*
* In the following example, we will create an attachment for a picture. We
* will then attach the picture to the email and send it.
*
* </pre>
*
* @describe 发送包含附件的邮件(附件为本地资源)
* @throws EmailException
*/
public static void sendEmailsWithAttachments() throws EmailException {
// Create the attachment
EmailAttachment attachment = new EmailAttachment();
attachment.setPath("mypictures/john.jpg");
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Picture of John");
attachment.setName("John"); // Create the email message
MultiPartEmail email = new MultiPartEmail();
email.setHostName("mail.myserver.com");
email.addTo("jdoe@somewhere.org", "John Doe");
email.setFrom("me@apache.org", "Me");
email.setSubject("The picture");
email.setMsg("Here is the picture you wanted"); // add the attachment
email.attach(attachment); // send the email
email.send();
} /**
* <pre>
*
* You can also use EmailAttachment to reference any valid URL for files
* that you do not have locally. When the message is sent, the file will be
* downloaded and attached to the message automatically.
*
* The next example shows how we could have sent the apache logo to John
* instead.
*
* </pre>
*
* @describe 发送包含附件的邮件(附件为在线资源)
* @throws EmailException
* @throws MalformedURLException
*/
public static void sendEmailsWithOnlineAttachments() throws EmailException, MalformedURLException {
// Create the attachment
EmailAttachment attachment = new EmailAttachment();
attachment.setURL(new URL("http://www.apache.org/images/asf_logo_wide.gif"));
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Apache logo");
attachment.setName("Apache logo"); // Create the email message
MultiPartEmail email = new MultiPartEmail();
email.setHostName("mail.myserver.com");
email.addTo("jdoe@somewhere.org", "John Doe");
email.setFrom("me@apache.org", "Me");
email.setSubject("The logo");
email.setMsg("Here is Apache's logo"); // add the attachment
email.attach(attachment); // send the email
email.send();
} /**
* <pre>
*
* Sending HTML formatted email is accomplished by using the HtmlEmail
* class. This class works exactly like the MultiPartEmail class with
* additional methods to set the html content, alternative text content if
* the recipient does not support HTML email, and add inline images.
*
* In this example, we will send an email message with formatted HTML
* content with an inline image.
*
* First, notice that the call to embed() returns a String. This String is a
* randomly generated identifier that must be used to reference the image in
* the image tag.
*
* Next, there was no call to setMsg() in this example. The method is still
* available in HtmlEmail but it should not be used if you will be using
* inline images. Instead, the setHtmlMsg() and setTextMsg() methods were
* used.
*
* <pre>
*
* @describe 发送内容为HTML格式的邮件
* @throws EmailException
* @throws MalformedURLException
*/
public static void sendHTMLFormattedEmail() throws EmailException, MalformedURLException {
// Create the email message
HtmlEmail email = new HtmlEmail();
email.setHostName("mail.myserver.com");
email.addTo("jdoe@somewhere.org", "John Doe");
email.setFrom("me@apache.org", "Me");
email.setSubject("Test email with inline image"); // embed the image and get the content id
URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
String cid = email.embed(url, "Apache logo"); // set the html message
email.setHtmlMsg("<html>The apache logo - <img src=\"cid:" + cid + "\"></html>"); // set the alternative message
email.setTextMsg("Your email client does not support HTML messages"); // send the email
email.send();
} /**
* <pre>
*
* The previous example showed how to create a HTML email with embedded
* images but you need to know all images upfront which is inconvenient when
* using a HTML email template. The ImageHtmlEmail helps you solving this
* problem by converting all external images to inline images.
*
* First we create a HTML email template referencing some images. All
* referenced images are automatically transformed to inline images by the
* specified DataSourceResolver.
*
* </pre>
*
* @describe 发送内容为HTML格式的邮件(嵌入图片更方便)
* @throws MalformedURLException
* @throws EmailException
*/
public static void sendHTMLFormattedEmailWithEmbeddedImages() throws MalformedURLException, EmailException {
// load your HTML email template
String htmlEmailTemplate = ".... <img src=\"http://www.apache.org/images/feather.gif\"> ...."; // define you base URL to resolve relative resource locations
URL url = new URL("http://www.apache.org"); // create the email message
ImageHtmlEmail email = new ImageHtmlEmail();
email.setDataSourceResolver(new DataSourceUrlResolver(url));
email.setHostName("mail.myserver.com");
email.addTo("jdoe@somewhere.org", "John Doe");
email.setFrom("me@apache.org", "Me");
email.setSubject("Test email with inline image"); // set the html message
email.setHtmlMsg(htmlEmailTemplate); // set the alternative message
email.setTextMsg("Your email client does not support HTML messages"); // send the email
email.send();
} public static void main(String[] args) throws EmailException {
Email email = new SimpleEmail();
email.setHostName("smtp.163.com");
email.setSmtpPort(465);
email.setAuthenticator(new DefaultAuthenticator("liwenzlw@163.com", "xxxxxxxxxxxxx"));
email.setSSLOnConnect(true);
email.setFrom("liwenzlw@163.com", "利文");
email.setSubject("异常信息");
email.setMsg("This is a test mail ... :-)");
email.addTo("1309928657@qq.com");
email.send();
}
}

使用Apache Commons Email 发生邮件的更多相关文章

  1. Apache commons email 使用过程中遇到的问题

    apache-commons-email是对mail的一个封装,所以使用起来确实是很方便.特别的,官网上的tutorial也是极其的简单.但是我也仍然是遇到了没有解决的问题. jar包的添加 mail ...

  2. 使用Apache commons email发送邮件

    今天研究了以下怎么用java代码发送邮件,用的是Apache的commons-email包. 据说这个包是对javamail进行了封装,简化了操作. 这里讲一下具体用法吧 一.首先你需要有邮箱账号和一 ...

  3. Apache Commons Email 使用网易企业邮箱发送邮件

    最近使用HtmlEmail 发送邮件,使用网易企业邮箱,发送邮件,死活发不出去!原以为是网易企业邮箱,不支持发送邮箱,后面经过研究发现,是apache htmlEmail 的协议导致,apache E ...

  4. Commons Email使用

    Apache Commons Email Apache的一个开源项目,是基于另一个开源项目Java Mail上进行封装的,使用起来更加简单方便: http://commons.apache.org/p ...

  5. Tomcat中使用commons-io-2.5发生的错误java.lang.ClassNotFoundException: org.apache.commons.io.IOUtils

    关键词:IntelliJ IDEA.Tomcat.commons-io-2.5.jar.java.lang.ClassNotFoundException: org.apache.commons.io. ...

  6. 编写更少量的代码:使用apache commons工具类库

    Commons-configuration   Commons-FileUpload   Commons DbUtils   Commons BeanUtils  Commons CLI  Commo ...

  7. Apache Commons 工具类介绍及简单使用

    转自:http://www.cnblogs.com/younggun/p/3247261.html Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下 ...

  8. Apache Commons 工具类简单使用

    Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下面是我这几年做开发过程中自己用过的工具类做简单介绍. 组件 功能介绍 BeanUtils 提供了对于 ...

  9. 使用Commons Email发送邮件

    Commons Email是apache commons库中的一个组件,对java mail做了一些个封装,提供能为简化的API供开发者使用.它依赖于javax.mail . 首先下载commons- ...

随机推荐

  1. wget下载整个网站

    wget下载整个网站wget下载整个网站可以使用下面的命令 wget -r -p -k -np http://hi.baidu.com/phps , -r 表示递归下载,会下载所有的链接,不过要注意的 ...

  2. mongoDB学习手记1--Windows系统下的安装与启动

    第一步:下载安装包 我们首先需要下载 mongodb 的安装包,直接到官网下载即可.地址为:https://www.mongodb.com/download-center#community. 看下自 ...

  3. springmvc 格式化返回日期格式

    <mvc:annotation-driven conversion-service="conversionService"> <mvc:message-conve ...

  4. ThinkPHP中,display和assign用法详解

    thinkphp 模板显示display和assign的用法 $this->assign('name',$value); //在 Action 类里面使用 assign 方法对模板变量赋值,无论 ...

  5. Quartz源码——scheduler.start()启动源码分析(二)

    scheduler.start()是Quartz的启动方式!下面进行分析,方便自己查看! 我都是分析的jobStore 方式为jdbc的SimpleTrigger!RAM的方式类似分析方式! Quar ...

  6. Disharmony Trees 树状数组

    Disharmony Trees Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Su ...

  7. poj3468树状数组的区间更新,区间求和

    A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 47174   ...

  8. HTTPS与MITM

    HTTPS:基于SSL/TSL的HTTP协议 MITM:Man-In-The-Middle中间人攻击 Https下中间人攻击的思路: 1 去https化 2 向CA申请相似域名的证书 防范: 睁大双眼

  9. mybatis一对一嵌套查询

    要求:查询一个员工的时候,把他对应的部门也查询出来 实现(其他配置这里不作说明,框架基于spring_springMVC_mybatis_oracle): 如有不对或不适的地方,请多多指教. 1.新建 ...

  10. Vue与swiper想结合封装全屏轮播插件

    项目需求介绍: 1.页面图文混排, 2.点击图片后全屏展示图片,并在底部显示文字,如果没有则不显示 3.关闭全屏后依然停留在上次浏览的位置 4.浏览图片时,不管点击的哪张图片,全屏展示的时候也要显示这 ...