如何在java中上传带邮件的图片附件?

时间:2012-09-18 09:48:14

标签: java email

我是java邮件的新手。我想发送带有图片附件的邮件。我已尝试使用以下代码将图像附加到邮件中。

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(
                        attachedFile2.getBytes("UTF-8"),
                        "application/octet-stream");

                //attachedFile2 is the filename of image.
                messageBodyPart = new MimeBodyPart();

                messageBodyPart.setDataHandler(new DataHandler(source));
                messageBodyPart.setFileName(attachedFile2);
                multipart.addBodyPart(messageBodyPart);
                message.setContent(multipart);

此代码正常运行。收到带有图片附件的邮件。但问题是图像以不支持的格式显示或不显示原始图像。

我不知道如何解决这个问题。

请帮帮我..

提前致谢..

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

private void addImageResource(final MimeMultipart content, final String resourceName,
    final String resourceTitle) throws MessagingException, IOException {
    MimeBodyPart msgBodyPart = new MimeBodyPart();
    URL imgURL = getClass().getClassLoader().getResource(resourceName);
    final DataSource dsImg = new FileDataSource(imgURL.getFile());
    msgBodyPart.setDataHandler(new DataHandler(dsImg));
    msgBodyPart.setHeader("Content-ID", resourceTitle);
    content.addBodyPart(msgBodyPart);
}