apache common email组件小结

apache common email组件小结。这是个很好的玩意,可以支持单发简单邮件,发附件,发HTML格式邮件,小结如下:

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.mail.internet.MimeUtility;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.MultiPartEmail;
import org.apache.commons.mail.SimpleEmail;

public class TestEmail {

private String emailServer = "smtp.163.com"; 
 private String userName = "test";  
 private String password = "123456";  
 private String emailEncoding = "GBK";  //Email编码
 /**
   * 测试发送不包含附件的简单纯文本邮件
   * @throws EmailException
   */
 public void testSimpleEmail() throws EmailException{
   SimpleEmail email = new SimpleEmail();
   email.setHostName(emailServer);     //服务器名
   email.setAuthentication(userName, password);    //用户名,密码
   email.setCharset(emailEncoding);    //邮件编码方式
   
   email.addTo("[email protected]","来函请教问题"); //收信人
   email.setFrom("[email protected]","来函请教问题"); //发信人
   email.setSubject("来函请教问题");  //标题
   email.setMsg("来函请教问题");  //正文

email.send();         //发送
 }

/**
   * 测试发送包含附件的邮件
   * @throws UnsupportedEncodingException
   * @throws EmailException
   * @throws MalformedURLException
   */
 public void testMultiPartEmail() throws UnsupportedEncodingException, EmailException, MalformedURLException{
   //本地附件
   EmailAttachment att1 = new EmailAttachment();   
   att1.setPath("C:/测试邮件.pdf");      //附件原始路径
   att1.setDisposition(EmailAttachment.ATTACHMENT);
   //是否乱码无法测试,若乱码可参考下一句解决方法
   att1.setDescription("attachemnt description gril 中文"); //附件描述
   //防止附件名乱码
   att1.setName(MimeUtility.encodeText("测试邮件.pdf")); //附件名称
   
   //网络附件
   EmailAttachment att2 = new EmailAttachment();
   att2.setURL(new URL("http://www.apache.org/images/asf_logo_wide.gif"));
   att2.setDisposition(EmailAttachment.ATTACHMENT);
   att2.setDescription("attachemnt description logo 中文");
   att2.setName(MimeUtility.encodeText("logo 中文.gif"));
   
   MultiPartEmail  email = new MultiPartEmail();
   email.setHostName(emailServer);
   email.setAuthentication(userName, password);
   email.setCharset(emailEncoding);
   
   email.addTo("[email protected]","来函请教问题"); //收信人
   email.setFrom("[email protected]","来函请教问题"); //发信人
   email.setSubject("来函请教问题");  //标题
   email.setMsg("广州廖煜嵘来函请教问题");  //正文
   email.attach(att1);  //发送
   email.attach(att2);
   
   email.send();
 }

/**
   * 测试发送HTML格式的邮件,经测试发现:用到的图片在QQ的邮箱界面中没有附件的图标
   * @throws UnsupportedEncodingException
   * @throws EmailException
   * @throws MalformedURLException
   */
 public void testHtmlEmail() throws UnsupportedEncodingException, EmailException, MalformedURLException{
   HtmlEmail email = new HtmlEmail();
   email.setHostName(emailServer);
   email.setAuthentication(userName, password);
   email.setCharset(emailEncoding);
   
   email.addTo("[email protected]","来函请教问题"); //收信人
   email.setFrom("[email protected]","来函请教问题"); //发信人
   email.setSubject("来函请教问题");  //标题
   
   //本地图片
   File file = new File("C:/测试邮件.pdf");
   String cid1 = email.embed(file, "测试邮件.pdf");
   //网络图片
   URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
   String cid2 = email.embed(url, "logo 中文.gif");
   
   email.setHtmlMsg("pretty gril - " + ""+ "The apache logo - "+ "");
   email.setTextMsg("Your email client does not support HTML messages");
   
   email.send();
 }

public static void main(String[] args) {
  // TODO Auto-generated method stub
  TestEmail test = new TestEmail();
    try {
     test.testSimpleEmail();
   test.testMultiPartEmail();
  test.testHtmlEmail();
  System.out.println("ok");
    } catch (Exception e) {
     e.printStackTrace();
    }

}

时间: 2024-08-04 05:27:31

apache common email组件小结的相关文章

Android中使用Apache common ftp进行下载文件

在Android使用ftp下载资源 可以使用ftp4j组件,还可以用apache common net里面的ftp组件,这2个组件我都用过. 个人感觉Apache common net里面的组件比较好用一些,下面是一个实例. 项目中对ftp的使用进行了封装,添加了回调函数已经断点续传的方法. FTPCfg 用来存储ftp地址,密码等信息的. FTPClientProxy 只是个代理而已,里面主要封装了common ftp api IRetrieveListener做回调用的,比如用于是否下载完成

Apache Common DbUtils

前段时间使用了Apache Common DbUtils这个工具,在此留个印,以备不时查看.大家都知道现在市面上的数据库访问层的框架很多,当然很多都是包含了OR-Mapping工作步骤的 例如大家常用的Hibernate与Mybatis.当然如果人们要一个纯粹的封装了JDBC的工具类,使用Apache Common DbUtils(下面简称ACD)是个不错的选择,这个工具在JDBC的基础上稍加封装是JDBC的操作更加便捷,在学习使用这个框架的途中你也不需要学 习太多的API类,因为一共也才3个部

使用Apache POI导出Excel小结--导出XLS格式文档

使用Apache POI导出Excel小结 关于使用Apache POI导出Excel我大概会分三篇文章去写 使用Apache POI导出Excel小结--导出XLS格式文档 使用Apache POI导出Excel小结--导出XLSX格式文档 使用Apache POI导出Excel--大数量导出 导出XLS格式文档 做企业应用项目难免会有数据导出到Excel的需求,最近在使用其,并对导出Excel封装成工具类开放出来供大家参考.关于Apache POI Excel基本的概念与操作我在这里就不啰嗦

Android Apache common ftp开源库以及http区别分析

1.前言: ftp开源库:Apache common ftp开源库上传文件到局域网的ftp上吧.开源库是commons-net-2.2.jar.包名是这样的:org.apache.commons.net.ftp.FTPClient;用这个框架也能可以上传,下载以及删除ftp服务器的文件的.我也是参考网上大神例子迅速在项目中使用,现在趁机会总结一下,以及我自已在此基础上再次封装的ftp使用类. http开源库:之前开发的时候先是用到了http协议上传文件,删除文件等等,使用的开源库是AsyncHt

关于GC(上):Apache的POI组件导致线上频繁FullGC问题排查及处理全过程

某线上应用在进行查询结果导出Excel时,大概率出现持续的FullGC.解决这个问题时,记录了一下整个的流程,也可以作为一般性的FullGC问题排查指导. 1. 生成dump文件 为了定位FullGC的原因,首先需要获取heap dump文件,看下发生FullGC时堆内存的分配情况,定位可能出现问题的地方. 1. 1 通过JVM参数自动生成 可以在JVM参数中设置-XX:+ HeapDumpBeforeFullGC参数. 建议动态增加这个参数,直接在线上镜像中增加一方面是要重新打包发布,另一方面

Apache common包应用集合

一.Commons BeanUtils http://jakarta.apache.org/commons/beanutils/index.html 说明:针对Bean的一个工具集.由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装. 使用示例:功能有很多,网站上有详细介绍.一个比较常用的功能是Bean Copy,也就是copy bean的属性.如果做分层架构开发的话就会用到,比如从PO(Persistent Object)拷贝数据到VO(Value O

Apache Common

Apache Commons是一个非常有用的工具包,解决各种实际的通用问题,下面是一个简述表,详细信息访问 http://jakarta.apache.org/commons/index.html BeanUtils Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt Betwixt提供将 JavaBean 映射至 XML 文档,以及相反映射的服务. Chain Chain 提供实现组织复杂的处理流程的"责任链模式". CLI CLI 提供针对

Apache common exec执行外部命令

工作中需要用java调用外部命令(shell脚本,启动服务等),之前使用Runtime.getRuntime().exec调用外部程序,Runtime.getRuntime().exec是java原生态的命令,而Apache commons-exec封装一些常用的方法用来执行外部命令.例如我们想得到当前windows目录下的文件信息,在cmd命令行下的命令是dir.具体以代码示例展示2个方法实现. 第一种Runtime.getRuntime().exec String pl_cmd = "cmd

toast组件小结

简介:toast是"吐司"的意思,它属于android杂项组件,是一个简单的消息提示框,类似于javascript中的alert. 作用 显示文本 显示图片 显示图文 3.常用方法 show():显示消息提示框 makeText(Context context,Charsquence text,int duration):创建一个toast对象 setView(View view):该Toast显示的view组件 4.代码演示 MainActivity.class public cla