首页 > 解决方案 > 邮寄图像视图而不将其保存在java中

问题描述

Salam,我有一个在网格窗格中生成时间表的应用程序,我可以将网格窗格转换为图像以便打印,但现在我想通过电子邮件发送该图像,但我找不到看到类似主题的方法但他们通过其路径发送存在于计算机中的图像但在我的情况下我不想保存图像我只想用java类Image或ImageView直接发送它这是我的代码

 @FXML
    void send_mail(ActionEvent event) throws IOException {

        final String username = "******@gmail.com";
        final String password = "******";

        Properties props = new Properties();
        props.put("mail.smtp.auth", true);
        props.put("mail.smtp.starttls.enable", true);
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.port", "587");

        javax.mail.Session session = javax.mail.Session.getInstance(props,
                new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        });

        try {

            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(username));
            message.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse("*****@yahoo.com"));
            message.setSubject("Testing Subject");
            message.setText("PFA");

            MimeBodyPart messageBodyPart = new MimeBodyPart();

            Multipart multipart = new MimeMultipart();

            messageBodyPart = new MimeBodyPart();
            messageBodyPart.setContent(image, "IMAGEVIEW");
            // String file = "../emploi/"+fileName;
            messageBodyPart.setText("Emploi de temps");
            //DataSource source = new FileDataSource(file);
            //  messageBodyPart.setDataHandler(new DataHandler((DataSource) file));

            // messageBodyPart.attachFile(file);
            messageBodyPart.setFileName("Emploi de temps");

            multipart.addBodyPart(messageBodyPart);
            MimeBodyPart photoBodyPart = new MimeBodyPart();        

            photoBodyPart = new MimeBodyPart();
            photoBodyPart.setContent(image, "IMAGEVIEW");
            multipart.addBodyPart(photoBodyPart);

            message.setContent(multipart);

            System.out.println("Sending");

            Transport.send(message);

            System.out.println("Done");

        } catch (MessagingException e) {
            e.printStackTrace();
        }

    }

但我得到这个错误

javax.mail.internet.ParseException:在 Content-Type 字符串中,预期为 '/',在 javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart. java:1510) 在 javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1172) 在 javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:522) 在 javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart .java:1533) 在 javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2271) 在 javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2231) 在 javax.mail.Transport.send(Transport.爪哇:123)

标签: javaimageemailjavafximageview

解决方案


推荐阅读