使用Commons Email发送带有附件的邮件

在前面介绍了怎样使用Apache Commons Email方一封简单的纯文本的邮件。但是在实际应用中,邮件可能需要包括附件。如:包含Word文件、图片、压缩文件等。这里将介绍怎样发送一封带有附件的邮件。

在前面介绍了怎样使用Apache Commons Email方一封简单的纯文本的邮件。但是在实际应用中,邮件可能需要包括附件。如:包含Word文件、图片、压缩文件等。这里将介绍怎样发送一封带有附件的邮件。

项目结构图:

带附件邮件测试项目结构图

代码如下:

package com.bug315;

import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.MultiPartEmail;

public class AttachementEmailTest {

	public static void main(String[] args) {
		try {
			// 发送人邮箱地址和密码
			String fromSMTP = "smtp.163.com";
			String fromEmail = "***@163.com";
			String fromPwd = "futkp***";
			// 收件人邮箱地址
			String toEmail = "***@qq.com";
			
			// 创建一个带有图片附件
			EmailAttachment attachmentImg = new EmailAttachment();
			attachmentImg.setPath("document/150606.png");
			attachmentImg.setDisposition(EmailAttachment.ATTACHMENT);
			attachmentImg.setDescription("Email测试项目结构图");
			attachmentImg.setName("Email项目");
			
			// 创建一个带有压缩包的附件
			EmailAttachment attachmentJar = new EmailAttachment();
			attachmentJar.setPath("document/email-1.4.jar");
			attachmentJar.setDisposition(EmailAttachment.ATTACHMENT);
			attachmentJar.setDescription("Apache Commons Email项目的jar包");
			attachmentJar.setName("Commons Email");
			
			// 创建一个网络加载图片附件
			EmailAttachment attachmentUri = new EmailAttachment();
			attachmentUri.setURL(new URL("https://www.hxstrive.com/hxstrivedocs/2015/06/07/1037120419_1.png"));
			attachmentUri.setDisposition(EmailAttachment.ATTACHMENT);
			attachmentUri.setDescription("来自网络图片");
			attachmentUri.setName("网络图片");
			
			// 创建邮件信息
			MultiPartEmail email = new MultiPartEmail();
			email.setHostName(fromSMTP);
			email.setAuthentication(fromEmail, fromPwd);
			email.setFrom(fromEmail, "lishi");
			email.addTo(toEmail, "zhangsan");
			email.setSubject("通过邮件发送附件测试");
			email.setMsg("这封邮件包含两个附件:1、一种图片;2、一个压缩包jar文件");
			
			// 将附件设置到邮件中
			email.attach(attachmentImg);
			email.attach(attachmentJar);
			email.attach(attachmentUri);
			
			// 发送
			email.send();
			System.out.println("发送成功");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
}
谁不会休息,谁就不会工作。 —— 列宁
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号