Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create a .eml (email) file in Java

Tags:

Anybody knows how to do this? I got all the information of the email (body, subject, from , to, cc, bcc) and need to generate an .eml file out of it.

like image 800
Jan Gressmann Avatar asked Oct 01 '08 11:10

Jan Gressmann


1 Answers

You can create eml files with the following code. It works fine with thunderbird and probably with other email clients:

public static void createMessage(String to, String from, String subject, String body, List<File> attachments) {     try {         Message message = new MimeMessage(Session.getInstance(System.getProperties()));         message.setFrom(new InternetAddress(from));         message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));         message.setSubject(subject);         // create the message part          MimeBodyPart content = new MimeBodyPart();         // fill message         content.setText(body);         Multipart multipart = new MimeMultipart();         multipart.addBodyPart(content);         // add attachments         for(File file : attachments) {             MimeBodyPart attachment = new MimeBodyPart();             DataSource source = new FileDataSource(file);             attachment.setDataHandler(new DataHandler(source));             attachment.setFileName(file.getName());             multipart.addBodyPart(attachment);         }         // integration         message.setContent(multipart);         // store file         message.writeTo(new FileOutputStream(new File("c:/mail.eml")));     } catch (MessagingException ex) {         Logger.getLogger(Mailkit.class.getName()).log(Level.SEVERE, null, ex);     } catch (IOException ex) {         Logger.getLogger(Mailkit.class.getName()).log(Level.SEVERE, null, ex);     } } 
like image 158
salocinx Avatar answered Sep 28 '22 05:09

salocinx