`

Java Mail 如何发送包含有Image的邮件

 
阅读更多

使用Java Mail发送包含有image的邮件时,有如下两种实现方式。

1. 在邮件的正文中,使用<img>标签,使其的src属性指向到服务器上的一个image文件,如下所示。当用户查看邮件时,对于包含的图片文件,邮箱会到图片文件所在服务器上下载图片文件,并显示到邮件中。

MimeMessage message = new MimeMessage(mailSession);
message.setSubject("HTML  mail with images");
message.setFrom(new InternetAddress("me@sender.com"));
message.setContent("<h1>This is a test</h1>" 
           + "<img src=\"http://www.rgagnon.com/images/jht.gif\">", 
           "text/html");

 

2. 把image作为附件发送,之后在邮件中使用cid前缀和附件的content-id来显示图片。因为这种方式直接把图片文件作为附件发送了,使得邮件变大了。好处是,邮箱不需要再去下载图片文件显示了。

MimeMessage message = new MimeMessage(mailSession);
message.setSubject("HTML  mail with images");
message.setFrom(new InternetAddress("me@sender.com"));
message.addRecipient(Message.RecipientType.TO, new InternetAddress("you@receiver.com"));

// This HTML mail have to 2 part, the BODY and the embedded image
MimeMultipart multipart = new MimeMultipart("related");

// first part  (the html)
BodyPart messageBodyPart = new MimeBodyPart();
String htmlText = "<H1>Hello</H1><img src=\"cid:image\">";
messageBodyPart.setContent(htmlText, "text/html");

// add it
multipart.addBodyPart(messageBodyPart);
        
// second part (the image)
messageBodyPart = new MimeBodyPart();
DataSource fds = new FileDataSource("C:\\images\\jht.gif");
messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setHeader("Content-ID","<image>");

// add it
multipart.addBodyPart(messageBodyPart);

// put everything together
message.setContent(multipart); 

 

详细参见下面的文章:

Send HTML mail with images (Javamail)

 

对于邮件中的图片无法正常显示的原因分析,详细参见下面的文章:

Why don't pictures show up in the emails I send or receive?

 

 

分享到:
评论

相关推荐

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

    本文将深入解析如何利用Java Mail实现这一需求,包括必要的知识点、代码示例及其实现细节。 ### 一、Java Mail API简介 Java Mail API是Java平台的一个扩展,用于读取和发送电子邮件。它提供了丰富的API来处理各种...

    用java mail发送包含图片的html

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

    java mail 邮件发送

    Java Mail邮件发送是一个在Java应用程序中发送电子邮件的关键技术。它基于JavaMail API,这是一个开源库,提供了丰富的功能来处理SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)等邮件...

    java实现发送邮件

    总之,Java Mail API 提供了一套完整的框架,帮助开发者轻松实现邮件发送功能。通过配置SMTP服务器信息、创建`MimeMessage`对象、添加附件和正文,以及使用`Transport`发送邮件,你可以实现包含图片和附件的复杂邮件...

    写java程序实现发邮件功能

    本篇文章将深入探讨如何使用Java编写程序来实现邮件的发送,包括发送纯文本邮件、带有附件的邮件、包含图片的邮件以及在邮件中显示图片。 首先,我们得知道JavaMail API是实现邮件发送功能的关键库。它提供了一系列...

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

    总结来说,发送带有附件和图片的Java邮件涉及多个步骤,包括设置邮件服务器参数、创建MimeMessage、添加不同类型的MimeBodyPart以及发送邮件。`TemplateMailMessage.java`和`MailTemplateHelper.java`则可能提供了更...

    java发送邮件,可带图片

    在Java编程中,发送带有图片和样式的电子邮件是一项常见的任务,尤其对于自动化通知、报告或者营销活动来说。...在实际开发中,还可以考虑异常处理、邮件模板等高级功能,以提升邮件发送的稳定性和用户体验。

    Java email send image

    Java邮件发送图片功能详解 在Java编程中,发送电子邮件是一项常见的任务,特别是在自动化通知、客户服务或数据报告等场景中。本篇文章将详细讲解如何使用Java实现发送包含文本、附件(尤其是图片)以及HTML格式的...

    java swing截图发送 电子邮件

    本篇文章将深入探讨如何在Java Swing应用中实现截图并将其通过电子邮件发送的功能。 首先,我们需要了解Java Swing的基本组件和事件处理。`Robot`类是Java AWT库的一部分,可以用来模拟用户的键盘和鼠标操作,包括...

    发送邮件及邮件附件java代码实例(支持多附件,群发送).pdf

    这个`Mail.java`类的实现提供了一种基础的邮件发送功能,但请注意,对于大多数生产环境,使用成熟的库如JavaMail API会更加方便和稳定,因为它包含了更全面的错误处理、SSL/TLS支持以及自动处理SMTP细节。...

    Java发送邮件(包含jar包)

    总之,Java发送邮件涉及到的主要知识点包括JavaMail API的使用、`mail.jar`包的引入、SMTP协议的理解以及如何构建和发送`MimeMessage`。通过这些知识,开发者可以构建出功能丰富的邮件发送系统,满足各种业务需求。

    Java邮件发送 javamail

    本文将深入探讨Java邮件发送的关键概念,包括SMTP(Simple Mail Transfer Protocol)、POP3(Post Office Protocol Version 3)、IMAP(Internet Message Access Protocol)以及MIME(Multipurpose Internet Mail ...

    JavaMail实现邮件发送的简单封装(包括文本、图片、html、附件)

    JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。...在这个过程中,理解MimeMessage、Multipart和BodyPart的概念,以及如何配置SMTP服务器参数,是成功实现邮件发送的关键。

    Java 邮件mail.rar

    5. **Transport**:负责实际的邮件发送操作。一旦`Message`准备就绪,你可以通过`Transport.send(Message)`方法将其发送出去。 6. **Part**:`Part`接口是`Message`和`BodyPart`的基类,定义了通用的邮件内容接口,...

    l批量发送带图片和附件的复杂邮件(防邮件屏蔽)

    JavaMail API是Java平台上的一个标准API,用于处理邮件服务,包括发送、接收和管理邮件。本教程将详细讲解如何使用JavaMail API批量发送带有图片和附件的复杂邮件,并提供防邮件屏蔽的策略。 首先,我们需要了解...

    java邮件发送

    Java邮件发送是一个重要的功能,常用于企业级应用中发送通知、报表或验证码等。在Java中,我们可以使用JavaMail API来实现这个功能。JavaMail API是一个开源库,它提供了发送和接收邮件的标准接口。下面我们将深入...

    spring mail 发送html

    在IT行业中,Spring框架是一个广泛使用的Java应用开发框架,它提供了丰富的功能,包括Spring Mail模块,用于发送电子邮件。本文将详细讲解如何利用Spring Mail发送HTML格式的邮件,以及如何发送普通文本、附件和...

    实现邮件发送,包含jar包

    本文将深入探讨如何使用Java实现邮件发送功能,包括添加附件和嵌入图片。 首先,为了发送邮件,我们需要引入JavaMail API。这个API提供了一套完整的类和接口,用于处理邮件消息。在描述中提到的"jar包"很可能是指...

    Springboot发送邮件

    Spring Boot通过集成了JavaMailSender接口和JavaMailSenderImpl类,为我们提供了方便的邮件发送服务。首先,我们需要在项目的`pom.xml`或`build.gradle`中添加相关依赖,例如对于Maven项目,添加如下依赖: ```xml ...

Global site tag (gtag.js) - Google Analytics