Салам, у меня есть приложение, которое генерирует табуляцию времени в панели сетки, и я мог бы превратить сетку в изображение, чтобы распечатать его, но теперь я хочу отправить это изображение по электронной почте, но я не могу найти способ видели похожие темы, но они отправляют изображение, существующее на компьютере, по его пути, но в моем случае я не хочу сохранять изображение, я просто хочу отправить его напрямую с помощью java class 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.inte rnet .ParseException: в строке Content-Type ожидаемый '/' получил null в javax.mail.inte rnet .ContentType. (ContentType. java: 104) в javax.mail.inte rnet .MimeBodyPart.updateHeaders (MimeBodyPart. java: 1510) в javax.mail.inte rnet .MimeBodyPart.updateHeaders (MimeBody . java: 1172) в javax.mail.inte rnet .MimeMultipart.updateHeaders (MimeMultipart. java: 522) в javax.mail.inte rnet .MimeBodyPart.updateHeaders (MimeBodyPart. java: 1533 ) в javax.mail.inte rnet .MimeMessage.updateHeaders (MimeMessage. * 1 022 *: 2271) в javax.mail.inte rnet .MimeMessage.saveChanges (MimeMessage. java: 2231) в javax.mail.Transport.send (Transport. java: 123)