`
guoxuepeng
  • 浏览: 38584 次
文章分类
社区版块
存档分类
最新评论

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) account.

我们的的第一个例子中将创建一个基本的电子邮件到"John Doe",并通过您的Google的邮件上(GMail的)帐户发送给它。

Email email = new SimpleEmail();
email.setHostName("smtp.googlemail.com");
email.setSmtpPort(465);
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();
调用setHostName(“mail.myserver.com”)设置发送邮件的SMTP服务器将用于发送邮件的地址。如果不设置,系统属性的“mail.host”将被使用。

发送带附件的邮件

将附件添加到电子邮件中,你会需要使用MultiPartEmail类。这个类的工作就像SimpleEmail的,除了它增加了几个重载attach()方法将附件添加到电子邮件。您可以添加无限数量的附件,无论是内嵌或附加。将进行MIME编码的附件。
添加附件,最简单的方法是通过使用的EmailAttachment类引用您的附件。
在下面的例子中,我们将创建一个附件图片。然后,我们将附加到电子邮件中的图片,并将其发送。


import org.apache.commons.mail.*;
...

  // 创建附件
  EmailAttachment attachment = new EmailAttachment();
  attachment.setPath("mypictures/john.jpg");
  attachment.setDisposition(EmailAttachment.ATTACHMENT);
  attachment.setDescription("Picture of John");
  attachment.setName("John");

  // 创建电子邮件
  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");

  // 添加附件
  email.attach(attachment);

  // 发送邮件
  email.send();
您也可以使用任何有效的URL EmailAttachment参考,你不必在本地的文件。发送消息时,该文件会被下载并自动附加到邮件中。
下一个例子显示我们如何能够将apache的标志发送给“John”。

import org.apache.commons.mail.*;
...

  // 创建附件
  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");

  // 创建电子邮件
  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");
  
  // 添加附件
  email.attach(attachment);

  // 发送电子邮件
  email.send();


发送HTML格式的邮件

发送HTML格式的邮件是通过使用HtmlEmail类。这个类可以通过MultiPartEmail类的其他方法来设置HTML内容,替代文字内容,如果收件人不支持HTML电子邮件,并且添加内嵌图像。

在这个例子中,我们将发送一封电子邮件,内嵌图像与格式化的HTML内容。

import org.apache.commons.mail.HtmlEmail;
...

  // 创建一个电子邮件
  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");
  
  // 嵌入图像
  URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
  String cid = email.embed(url, "Apache logo");
  
  // 设置HTML内容
  email.setHtmlMsg("<html>The apache logo - <img src=\"cid:"+cid+"\"></html>");

  // 设置Text
  email.setTextMsg("Your email client does not support HTML messages");

  // 发送邮件
  email.send();
首先,请注意embed()调用返回一个String。这个String是一个引用图像在图像标签,必须使用随机生成的标识符。
接着,这里并没有使用setMsg()在这个例子中。方法仍然是可用的在HtmlEmail,但它不应该被使用,如果你将要使用内嵌图像。相反,setHtmlMsg()和setTextMsg()方法被使用。

带有嵌入式图像的HTML格式的电子邮件发送


前面的示例演示如何创建一个带有嵌入式图像的HTML电子邮件,但使用HTML电子邮件模板时,你需要知道的所有图像的前期,这是不方便的。ImageHtmlEmail帮助你解决这个问题,将所有外部图像内嵌图像。
import org.apache.commons.mail.HtmlEmail;
...

  
  String htmlEmailTemplate = ....

  // 定义基础URL来解决资源相对位置
  URL url = new URL("http://www.apache.org");

  // 创建电子邮件
  HtmlEmail email = new ImageHtmlEmail();
  email.setDataSourceResolver(new DataSourceResolverImpl(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");
  
  // 设置HTML内容
  email.setHtmlMsg(htmlEmailTemplate);

  
  email.setTextMsg("Your email client does not support HTML messages");

  // 发送邮件
  email.send();









分享到:
评论

相关推荐

    commons-email-1.3.3,activation,mail

    总的来说,Apache Commons Email 1.3.3,activation和JavaMail API共同构成了Java平台强大的邮件处理工具箱,使得开发者能够轻松地实现邮件的创建、格式化和发送,同时支持各种复杂的邮件格式和安全协议。...

    commons-email

    标题“commons-email”指的是Apache Commons Email项目,这是一个Java库,专门用于简化在Java应用程序中发送电子邮件的过程。这个项目是Apache Commons的一部分,旨在提供一个简单、直接的API来创建和发送电子邮件,...

    使用javaMail实现收发邮件

    在JavaMail中,我们主要依赖几个关键库,包括activation.jar、commons-email-1.1.jar和mail.jar,这些库提供了丰富的功能来实现邮件的收发。 activation.jar:这是JavaBeans Activation Framework (JAF)的一部分,...

    java发送邮件所需jar包

    Apache Commons Email是一个强大的Java库,它简化了通过SMTP发送电子邮件的过程。它提供了丰富的API,支持HTML邮件、多部分邮件(包含文本和附件)、抄送、密送等功能。使用这个库,开发者可以避免直接与底层的...

    Android应用源码之AndroidEmail(邮件收发)_收发.zip

    对于邮件接收,Android并不直接提供内置的POP3或IMAP支持,所以开发者需要使用第三方库,如Apache Commons Net库来实现。POP3(Post Office Protocol)用于下载邮件,而IMAP(Internet Message Access Protocol)则...

    内部简易邮件收发功能java实现

    而“工具”可能是指除了JavaMail API之外,可能还会介绍一些辅助工具或库,比如Apache Commons Email等,这些工具可以帮助简化邮件的构建和发送过程。 综上所述,实现内部简易邮件收发功能的Java解决方案涵盖了网络...

    发送邮件代码

    1. **commons-email-1.1.jar**:Apache Commons Email项目提供的一个轻量级邮件发送工具包,用于简化Java程序中的邮件发送操作。 2. **activation-1.4.1.jar**:用于处理MIME数据类型,支持多种数据类型的解析与转换...

    java收发邮件

    9. **使用第三方库**: 虽然JavaMail API提供了基础功能,但实际开发中,你可能还会使用Apache Commons Email、JavaMailSender等更高级的库来简化邮件操作。 10. **性能优化**: 对于大量邮件的发送,可以考虑使用多...

    SpringBoot使用邮箱发送验证码实现注册功能

    在本文中,我们使用 Apache Commons Email 组件来实现邮箱发送验证码功能。首先,我们需要添加依赖项: ``` &lt;groupId&gt;org.apache.commons &lt;artifactId&gt;commons-email &lt;version&gt;1.5 ``` 然后,我们需要配置 ...

    Android Email程序源码.zip源码资源下载

    8. **Apache Commons Net**:标签中的"apache"可能指代了Apache Commons Net库,这是一个用于网络协议的Java库,可能在源码中用于SMTP和POP3等网络通信。 9. **权限管理**:Android应用需要在AndroidManifest.xml中...

    javamail邮件发送程序

    这个程序允许开发者通过SMTP(简单邮件传输协议)、POP3(邮局协议)或IMAP(因特网消息访问协议)等标准协议来收发邮件。在Java EE环境中,由于存在内置的邮件API,可能会与JavaMail库发生冲突,因此在独立测试...

    java发邮件

    此外,现代的Java应用可能会使用第三方库如Apache Commons Email或者Spring框架的Email支持,它们在Java Mail API的基础上提供更友好的API,简化邮件发送的流程。 总结一下,Java发送邮件涉及到的主要知识点包括: ...

    基于JavaMail开发的Android邮箱项目源码.zip

    通常需要通过第三方库如Apache的Apache Commons Net或GreenMail来模拟邮件服务器进行测试。实际生产环境则需依赖像JavaMail-for-Android这样的轻量级库,专门为Android优化,避免引入不必要的组件。 2. **权限设置*...

    毕业设计论文-IT计算机-[其他类别]MeyboMail Web开源简化版_meybomailweb-源码.zip

    - **邮件处理API**:理解如何使用JavaMail API或第三方库(如Apache Commons Email)发送和接收邮件。 - **前端技术**:如果项目包含前端部分,可以学习HTML、CSS和JavaScript,以及可能使用的前端框架如Bootstrap或...

Global site tag (gtag.js) - Google Analytics