`
lan13217
  • 浏览: 498037 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

java mail 带图片附件

 
阅读更多
package t;

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;

public class AttchAndImgMail {
	// JavaMail需要Properties来创建一个session对象。它将寻找字符串"mail.smtp.host",属性值就是发送邮件的主机.
	public static void main(String[] args) throws Exception {
		Properties properties = new Properties();
		properties.put("mail.smtp.host", "smtp.163.com");// 设置smtp主机
		properties.put("mail.smtp.auth", "true");// 使用smtp身份验证
		/*
		 * 在 JavaMail 中,可以通过 extends Authenticator 抽象类,在子类中覆盖父类中的 getPasswordAuthentication()
		 * 方法,就可以实现以不同的方式来进行登录邮箱时的用户身份认证。JavaMail 中的这种设计是使用了策略模式(Strategy
		 */
		MimeMessage message = new MimeMessage(Session.getInstance(properties, new Authenticator() {
			@Override
			public PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication("xxxx@163.com", "");
			}
		}));
		// 设置邮件的属性
		// 设置邮件的发件人
		message.setFrom(new InternetAddress("XXX@163.com"));
		// 设置邮件的收件人 cc表示抄送 bcc 表示暗送
		message.setRecipient(Message.RecipientType.TO, new InternetAddress("xx@xx.com"));
		// 设置邮件的主题
		message.setSubject("世界上最复杂的邮件有附件和图片");
		// 创建邮件的正文
		MimeBodyPart text = new MimeBodyPart();
		// setContent(“邮件的正文内容”,”设置邮件内容的编码方式”)
		text.setContent("世界上最复杂的邮件<img src='cid:a'><img src='cid:b'>", "text/html;charset=gb2312");
		// 创建图片
		MimeBodyPart img = new MimeBodyPart();
		/*
		 * JavaMail API不限制信息只为文本,任何形式的信息都可能作茧自缚MimeMessage的一部分.
		 * 除了文本信息,作为文件附件包含在电子邮件信息的一部分是很普遍的.
		 * JavaMail API通过使用DataHandler对象,提供一个允许我们包含非文本BodyPart对象的简便方法.
		 */
		DataHandler dh = new DataHandler(new FileDataSource("\\ueditor\\image\\20140923\\1411452001148005322.gif"));
		img.setDataHandler(dh);
		// 创建图片的一个表示用于显示在邮件中显示
		img.setContentID("a");
		

		MimeBodyPart img1 = new MimeBodyPart();
		DataHandler dh1 = new DataHandler(new FileDataSource("\\ueditor\\image\\20140923\\1411452012849098519.png"));
		img1.setDataHandler(dh1);
		// 创建图片的一个表示用于显示在邮件中显示
		img1.setContentID("b");

		// 创建附件
		MimeBodyPart attch = new MimeBodyPart();
		DataHandler dha = new DataHandler(new FileDataSource("\\mailattachment\\20140923140025!-resize_png_new.png"));
		attch.setDataHandler(dha);
		String filename1 = dha.getName();
		// MimeUtility 是一个工具类,encodeText()用于处理附件字,防止中文乱码问题
		attch.setFileName(MimeUtility.encodeText(filename1));
		// 关系 正文和图片的
		MimeMultipart mm = new MimeMultipart();
		mm.addBodyPart(text);
		mm.addBodyPart(img);
		mm.addBodyPart(img1);
		mm.setSubType("related");// 设置正文与图片之间的关系
		// 图班与正文的 body
		MimeBodyPart all = new MimeBodyPart();
		all.setContent(mm);
		
		
		// 附件与正文(text 和 img)的关系
		MimeMultipart mm2 = new MimeMultipart();
		mm2.addBodyPart(all);
		mm2.addBodyPart(attch);
		mm2.setSubType("mixed");// 设置正文与附件之间的关系

		message.setContent(mm2);
		message.saveChanges(); // 保存修改
		Transport.send(message);// 发送邮件

	}
}
分享到:
评论

相关推荐

    java 发送附件mail

    在Java编程中,发送带有附件的邮件是一项常见的任务,尤其在企业级应用或者自动化脚本中。这个场景通常涉及到JavaMail API的使用,一个强大的库,可以用来处理SMTP(简单邮件传输协议)邮件服务。接下来,我们将深入...

    javamailtest带附件

    这个“javamailtest带附件”可能是某个示例项目或教程,展示了如何使用JavaMail API来发送带有附件的电子邮件。下面将详细讨论JavaMail API以及如何在其中添加附件。 1. **JavaMail API基础**: JavaMail API 是...

    JAVA MAIL发送邮件带附件和图片

    在Java编程中,发送带有附件和图片的电子邮件是一项常见的任务,尤其在自动化通知、报告分发等场景下。本文将详细讲解如何使用Java Mail API来实现这一功能,同时参考提供的`TemplateMailMessage.java`和`...

    java 发邮件带excel附件,以流的形式发送附件,不生成excel文件

    在Java编程中,发送带有Excel附件的电子邮件是一项常见的任务,特别是在数据报告或自动化流程中。在某些场景下,我们可能希望直接以流的形式处理Excel数据,而不是先将其保存为一个实际的文件,然后再作为附件发送。...

    java发邮件 带附件 多媒体邮件

    根据提供的文件信息,本文将详细解释如何使用Java发送带有附件及多媒体内容(如图片)的电子邮件。本示例代码及说明适用于希望利用Java Mail API发送包含丰富格式内容邮件的开发者。 ### Java 发送带有附件及多媒体...

    java 邮件发送 可带附件

    在Java中,我们可以使用JavaMail API来实现邮件的发送,包括带有附件的功能。以下是对这个主题的详细解释: 一、JavaMail API简介 JavaMail API是一个开源的Java库,用于处理邮件服务。它提供了丰富的接口和类,...

    java Mail 发送邮件及邮件附件

    Java Mail 发送邮件及邮件附件 Java Mail 是一个广泛使用的 Java 库,用于发送电子邮件。以下是 Java Mail 发送邮件及邮件附件的知识点。 Java Mail 简介 Java Mail 是一个 Java 库,提供了发送电子邮件的功能。...

    用Java Mail发送带有图片的html格式的邮件.txt

    在IT领域,特别是Java开发中,使用Java Mail API发送带有图片的HTML格式邮件是一项常见且实用的功能。本文将深入解析如何利用Java Mail实现这一需求,包括必要的知识点、代码示例及其实现细节。 ### 一、Java Mail ...

    java 收发 带附件 邮件

    在Java编程中,发送和接收带有附件的电子邮件是一项...总结来说,Java Mail API提供了一套完整的框架,使得在Java中收发带有附件的邮件变得简单易行。通过理解和运用上述知识点,你可以构建出符合需求的邮件处理系统。

    Java Mail.rar

    Java Mail 支持MIME,可以处理文本、图像、音频、视频等多种类型的附件。 5. **邮件头和内容**:Java Mail 提供 `Header` 类来处理邮件头信息,如发件人、收件人、主题等。同时,`Multipart` 类允许组合多个部分...

    javaemail发送邮件(带附件)

    "javaemail发送邮件(带附件)" javaemail发送邮件(带附件)是使用Java技术实现的邮件发送功能,支持带附件的发送。下面是该功能的知识点总结: 1. 使用JavaMailSenderImpl类来发送邮件,需要设置SMTP服务器、用户名...

    java mail 1.4.5 jar_source 天涯浪子

    在 Java Mail 中,JAF 负责处理邮件附件和其他复杂数据类型的解析和编码。 4. **Doc 文档**:这部分可能包含 Java Mail 和 JAF 的API文档,是开发者理解和使用这些库的重要参考资料。API 文档通常详细描述了每个类...

    Java mail-1.4.7 jar包

    Java Mail 是一个开源的Java库,它为Java应用程序提供了与各种邮件系统交互的能力。这个"mail-1.4.7.jar"是Java Mail的一个版本,主要用于处理电子邮件的发送和其他相关功能。版本号1.4.7表明这是一个较旧但稳定版本...

    使用springMail发送带附件的email

    在本项目中,我们将深入探讨如何使用SpringMail发送带有附件的电子邮件。首先,我们需要了解几个核心概念: 1. **JavaMail API**: 这是Java平台上的一个标准API,用于处理邮件相关任务,如创建、发送和接收邮件。它...

    java-mail开发包

    Java Mail 是一个开源的Java API,它为Java开发者提供了处理电子邮件的能力。这个开发包是由Oracle官方网站提供的,确保了其权威性和稳定性。Java Mail API 支持SMTP、POP3、IMAP等多种邮件协议,使得开发者可以方便...

    Java.mail开发包

    Java Mail 支持创建和解析MIME格式的邮件,处理嵌入式或附件的多媒体内容。 4. **认证与安全**:Java Mail 支持SSL/TLS加密,确保邮件传输的安全性。此外,它还支持不同的身份验证机制,如PLAIN、LOGIN、CRAM-MD5等...

    Java_Mail.zip_java_java mail_java.mail_mail

    Java Mail 是一个强大的Java库,用于处理电子邮件的发送和接收。这个库提供了全面的API,使得开发者能够方便地实现SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)等邮件服务。在Java应用...

    Java Mail 发布邮件

    Java Mail 是一个强大的开源库,用于在Java应用程序中处理电子邮件通信。它提供了API,使得开发者可以方便地发送、接收和管理邮件。这个压缩包文件很可能包含了一组示例代码或工具,帮助我们理解如何使用Java Mail ...

    JAVA 发送HTML格式并带图片的邮件实例

    在Java编程中,发送带有HTML格式和图片的邮件是一项常见的任务,这通常涉及到电子邮件API的使用,例如JavaMail API。以下是对这个主题的详细讲解: 首先,JavaMail API是Java平台上的一个开源库,用于处理电子邮件...

    用java mail发送包含图片的html

    标题中的“用Java Mail发送包含图片的HTML”指的是使用JavaMail API来发送带有嵌入式图像的HTML格式电子邮件。在电子邮件中,除了纯文本内容,我们有时需要包含图像以提高信息的可读性和视觉吸引力。JavaMail API是...

Global site tag (gtag.js) - Google Analytics