首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在javamail api中以附件的形式上传文件?

如何在javamail api中以附件的形式上传文件?
EN

Stack Overflow用户
提问于 2012-09-26 14:27:40
回答 2查看 6.5K关注 0票数 1

嗨,我是JavaMail的新手。

我想上传一个文件作为附件。它只存储文件名。

仅使用该文件的文件名而不使用该文件的内容成功附加文件。

如何解决这个问题。先谢谢你...

我已经尝试了以下代码:

代码语言:javascript
复制
Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress(fromAddress));
        message.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse(toAddr));

        if (subject == null) {
            message.setSubject("");
        } else {
            message.setSubject(subject);
        }

        if (attachedFile == null || attachedFile.equalsIgnoreCase("")) {
            if (content == null) {
                message.setText("");
            } else {
                message.setText(content);
            }

        } else {
            // Create the message part
            BodyPart messageBodyPart = new MimeBodyPart();

            if (content == null) {
                messageBodyPart.setText("");
            } else {
                messageBodyPart.setText(content);
            }

            // Create a multipar message
            Multipart multipart = new MimeMultipart();

            // Set text message part
            multipart.addBodyPart(messageBodyPart);

            // Part two is attachment
            // messageBodyPart = new MimeBodyPart();
            DataSource source = new ByteArrayDataSource(
                    attachedFile.getBytes("UTF-8"),
                    "application/octet-stream");
            messageBodyPart = new MimeBodyPart();

            // DataSource source = new FileDataSource(attchedFile);
            messageBodyPart.setDataHandler(new DataHandler(source));
            messageBodyPart.setFileName(attachedFile);
            // messageBodyPart.setHeader("Content-ID", "image/*");
            multipart.addBodyPart(messageBodyPart);
            message.setContent(multipart);
        }

        Transport.send(message);
EN

回答 2

Stack Overflow用户

发布于 2014-12-04 20:11:42

代码语言:javascript
复制
    MimeBodyPart messageBodyPart = new MimeBodyPart();

    messageBodyPart.setContent(body, "text/plain");

    Multipart multipart = new MimeMultipart();
    multipart.addBodyPart(messageBodyPart);

    // adds attachments


            MimeBodyPart attachPart = new MimeBodyPart();


            File file=new File("Z:/filename");

            try {

                attachPart.attachFile(file);
            } catch (IOException ex) {
                ex.printStackTrace();
            }

            multipart.addBodyPart(attachPart);

    // sets the multi-part as e-mail's content
    message.setContent(multipart);

也许这能行得通

票数 8
EN

Stack Overflow用户

发布于 2012-09-26 14:32:48

代码语言:javascript
复制
 MimeMessage message = new MimeMessage(session);

 // create the message 
 MimeBodyPart messageBodyPart = new MimeBodyPart();

 //fill message to be sent
 messageBodyPart.setText("Hi hello try and send this message");

 Multipart multipart = new MimeMultipart();
 multipart.addBodyPart(messageBodyPart);

 //attach your file here
 messageBodyPart = new MimeBodyPart();
 DataSource source =  new FileDataSource(fileAttachment); // your file
 messageBodyPart.setDataHandler( new DataHandler(source));
 messageBodyPart.setFileName(fileAttachment);
 multipart.addBodyPart(messageBodyPart);

 // Put message in parts
 message.setContent(multipart);


 Transport.send( message );
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12595751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档