javamail 问题 : how to attach file without creating file

标签 java attachment jakarta-mail

我正在使用 javamail API 来创建电子邮件并将文件附加到它。

有没有办法使用 javamail api 发送带有附件的电子邮件 无需在文件系统上物理创建文件。

我只想从应用程序中挑选一些数据 并将其作为文件附加到我的电子邮件中

我应该如何附加:

try {
            // create a message
            MimeMessage msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress(from));
            InternetAddress[] address = {new InternetAddress(to)};
            msg.setRecipients(Message.RecipientType.TO, address);
            msg.setSubject(subject);

            // create and fill the first message part
            MimeBodyPart mbp1 = new MimeBodyPart();
            mbp1.setText(msgText1);

            // create the second message part
            MimeBodyPart mbp2 = new MimeBodyPart();

            // attach the file to the message
            **mbp2.attachFile(filename);**


            // create the Multipart and add its parts to it
            Multipart mp = new MimeMultipart();
            mp.addBodyPart(mbp1);
            mp.addBodyPart(mbp2);

            // add the Multipart to the message
            msg.setContent(mp);

            // set the Date: header
            msg.setSentDate(new Date());

            // send the message
            Transport.send(msg);

TY 非常全!

最佳答案

如果您使用的是 JavaMail 1.4 或更高版本,您可以像这样使用 java.mail.util.ByteArrayDataSource

MimeBodyPart mbp = new MimeBodyPart();
String data = "any ASCII data";
DataSource ds = new ByteArrayDataSource(data, "application/x-any");
mbp.setDataHandler(new DataHandler(ds));

关于javamail 问题 : how to attach file without creating file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3556091/

相关文章:

java - 在服务中使用 startActivityForResult 启动 Activity

spring - 在 Tomcat 中发送带有附件文件的消息时缺少起始边界异常

java - 为什么interrupt()会快速连续中断两个线程?

java - 如果不修改静态类变量,非同步静态方法是否线程安全?

php - 解析电子邮件附件的脚本

java - 如何在 JSP 中不使用 scriptlet 读取附件消息?

php - 如何在 Apache 中同时重写和设置 header

java - 使用 JavaMail 向多个接收方发送邮件

android - 使用 javamail-android 发送电子邮件时,正文作为文本文件附加

java - apply stream 过滤掉所有满足条件的元素,除了一个