Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javamail问题:如何附加文件而不创建文件_Java_Attachment_Jakarta Mail - Fatal编程技术网

javamail问题:如何附加文件而不创建文件

javamail问题:如何附加文件而不创建文件,java,attachment,jakarta-mail,Java,Attachment,Jakarta Mail,我正在使用javamail API创建电子邮件并向其附加一个文件 是否有一种使用javamail api发送带有附件的电子邮件的方法 无需在文件系统上物理创建文件 我只想从应用程序中选取一些数据 并将其作为文件附加到我的电子邮件中 我应如何附上: try { // create a message MimeMessage msg = new MimeMessage(session); msg.setFrom(new Inte

我正在使用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);

非常感谢

如果您使用的是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));

太好了:)太好了,我只需要一个更多的细节:我的附加名称是无标题的-[2]。如何定制它?(对于后代来说,@Nikolaus的意思是
setFileName
MimeBodyPart
,而不是
getFileName
MimeMultipart