HtmlEmail
发送邮件有两个类 HtmlEmail和子类ImageHtmlEmail,ImageHtmlEmail用于发送带图片的邮件
1、创建一个邮件的对象。
ImageHtmlEmail mail = new ImageHtmlEmail();
2、定义邮件正文中支持的内容,mail提供了setDataSourceResolver方法添加支持的内容,这里用到DataSourceResolver类的子类DataSourceBaseResolver的几个子类
DataSourceFileResolver 用于解析本地图片
DataSourceUrlResolver 用于解析网络图片
DataSourceCompositeResolver 构造方法支持多个DataSourceResolver的数组
DataSourceClassPathResolver
DataSourceResolver[] dataSourceResolvers = new DataSourceResolver[] { new DataSourceFileResolver(), new DataSourceUrlResolver(new URL("http://"))}; mail.setDataSourceResolver(new DataSourceCompositeResolver(dataSourceResolvers));
3、发送邮件参数
mail.setHostName(hostname); // 邮件服务器域名 mail.setAuthentication(username, password); // 邮箱账户 mail.setCharset("UTF-8"); // 邮件的字符集 mail.setFrom(username); // 发件人地址 mail.addTo(to);//收件人,必要时循环添加 mail.setSubject(subject); // 邮件主题
4、添加附件
EmailAttachment attachment = new EmailAttachment(); //创建附件的对象 attachment.setPath(path);//Example: /home/user/images/image.jpg attachment.setDisposition(EmailAttachment.ATTACHMENT); attachment.setDescription("测试结果"); attachment.setName(path); mail.attach(attachment);
5、邮件正文
String htmlEmailTemplate = "这是一张用于测试的图片,请查收</br>。 <img src=\"test.png\"> "+ " <img src=\"http://commons.apache.org/proper/commons-email/images/commons-logo.png\">"; mail.setHtmlMsg(htmlEmailTemplate); //邮件正文,可以是html格式支持图片 http等
6、发送
mail.send();