`
Fangrn
  • 浏览: 819566 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javamail发送文件附件(附件为字节数组)

    博客分类:
  • j2ee
F# 
阅读更多

在实际的开发中我们经常会遇到需要通过程序去发送邮件的问题,而我们现在用得比较多的是javamail,我们知道javamail发送本地附件是很容易的,但是如果附件是存储在数据库的大字段呢,那该怎么办呢?

 

InputStream in = new ByteArrayInputStream(att[i].getAttachment());
File f=File.createTempFile(att[i].getAttachmentName(), ".m64");
OutputStream fout = new BufferedOutputStream(new FileOutputStream(f));
int b = -1;
while ((b = in.read()) != -1) {
	fout.write(b);
}
fout.flush();
FileDataSource fileds=new FileDataSource(f);
MimeBodyPart fbp = new MimeBodyPart();
fbp.setDataHandler(new DataHandler(fileds));
fbp.setFileName(MimeUtility.encodeText(att[i].getAttachmentName()));
multipart.addBodyPart(fbp);

 从大字段中获取字节信息,创建临时文件,再使用临时文件作为邮件附件。

曾试过直接用字节数组构建

MimeBodyPart

,但是邮件发送过去附件内容是带过去了,但是打开附件看到的是空白

分享到:
评论

相关推荐

    javamail附件从流中获取

    例如,`ExportExcel.java`可能会创建一个Excel文件的字节数组输入流,然后`JavaMialUtil2.java`通过`InputStreamUtil.java`提供的方法将这个输入流转换为`DataSource`,进一步创建`MimeBodyPart`,最后添加到邮件中...

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

    在某些场景下,我们可能希望直接以流的形式处理Excel数据,而不是先将其保存为一个实际的文件,然后再作为附件发送。这样可以节省磁盘空间,提高效率。本文将详细介绍如何在Java中实现这个功能。 首先,我们需要...

    纯java流实现的邮件发送

    在邮件发送中,我们需要将文件读取为字节流,然后将这些流包装成`DataSource`,以便作为邮件附件添加。例如,使用`FileInputStream`读取文件,然后通过`DataSource`接口的`getInputStream()`方法获取流。 4. **构建...

    spring javamail 来发送动态生成的3D图象.doc

    3. 动态生成3D图像,将其转换为字节数组。 4. 使用`MimeMessageHelper`将3D图像作为附件或内嵌在HTML邮件内容中。 这种方法避免了在服务器上存储大量3D图像,同时也满足了将3D报表直接发送给用户的需求。注意,为了...

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

    常见的实现有:FileDataSource(用于文件)、ByteArrayDataSource(用于字节数组)等。 #### 3. 内联图片处理 为了在HTML邮件中显示图片,通常需要将图片作为内联资源添加到邮件中。这可以通过在HTML文本中引用...

    spring整合freemarker发送邮件例子

    对于内嵌图片和附件,需要确保文件读取和转换为字节数组时也使用了正确的编码。 总结起来,Spring整合Freemarker和JavaMail API可以方便地创建复杂的HTML邮件,包括内嵌图片和附件,并能有效解决乱码问题。通过模板...

    使用JAVA MAIL API 的实例

    可以是FileDataSource(来自本地文件),也可以是ByteArrayDataSource(来自内存中的字节数组)。 以下是一个简单的JavaMail发送邮件的示例: ```java import javax.mail.*; import javax.mail.internet.*; ...

    kban6.zip_java email_java编程

    这可以是文件、内存中的字节数组或者任何能够提供输入流的对象。 在提供的源代码文件中,如`AtUnit.java`、`ClassNameFinder.java`等,可能包含了单元测试和类名查找的功能,这些通常是为了确保邮件发送功能的正确...

    javaee邮箱的开发 适合初学者

    JavaMail API支持添加文件附件,你需要将文件转换为字节数组,然后添加到`MimeBodyPart`中。同时,对于收到的带有附件的邮件,也需要解析`MimeMessage`并提取附件内容。 安全性是邮箱系统不可忽视的一部分。你需要...

    jsp网络编程从基础到实践

    《JSP网络编程从基础到实践》光盘说明 光盘的实例代码目录中包含了前10章的所有实例的源代码,实例名称及其所处章节如下: 第1章 JSP技术概述 实例1 第一个JSP页面 ... 实例69 发送带有附件的邮件 实例70 接收EMAIL

    JSP网络编程从基础到实践 实例代码

    《JSP网络编程从基础到实践》光盘说明 光盘的实例代码目录中包含了前10章的所有实例的源代码,实例名称及其所处章节如下: 第1章 JSP技术概述 实例1 第一个JSP页面 ... 实例69 发送带有附件的邮件 实例70 接收EMAIL

    JSP网络编程从基础到实践的实例代码

    JSP网络编程从基础到实践的实例代码 《JSP网络编程从基础到实践》光盘说明 光盘的实例代码目录中包含了前10章的所有实例的源代码,实例名称及其所处章节如下: ... 实例69 发送带有附件的邮件 实例70 接收EMAIL

    javax.activation.jar

    2. 创建DataHandler:根据数据源创建DataHandler实例,例如从文件或字节数组创建。 3. 使用DataHandler:将DataHandler与邮件的附件或其他需要处理的数据关联起来。 4. 处理MIME类型:利用MIME类型信息来正确地解析...

    JSP网络编程从基础到实践

    实例63 用servlet获取表单数据 实例64 用servlet读写文件数据 实例65 用servlet访问数据库 实例66 一个简单的struts应用实例——用户登录 JSP中的JavaMail开发 实例67 发送文本格式的邮件 ...

    java编程常见50例

    通过JavaMail,开发者可以实现发送、接收邮件,包括添加附件、设置HTML内容、处理多部分消息等。 4. **异常处理**:Java中的异常处理是程序健壮性的重要保障,使用`try-catch-finally`语句块可以捕获并处理运行时...

    SCJP 认证考试指南

    6. **输入/输出流**:掌握文件I/O操作,包括字节流和字符流,以及对象序列化和反序列化。 7. **多线程**:理解线程的概念,如何创建和管理线程,以及同步和互斥的概念,如synchronized关键字和wait/notify机制。 8...

Global site tag (gtag.js) - Google Analytics