发送邮件有两个类 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 = "这是一张用于测试的图片,请查收。 "+ " ";mail.setHtmlMsg(htmlEmailTemplate); //邮件正文,可以是html格式支持图片 http等
6、发送
mail.send();