formato - mail java
Creación de un archivo EML con un archivo adjunto utilizando JavaMail (2)
Crearé un archivo EML con un archivo adjunto usando JavaMail.
Creé un archivo EML simple con éxito, pero agregar un archivo adjunto no funciona correctamente. Voy a agregar un archivo PDF. Mi archivo EML se creará con éxito. Si abro el archivo EML generado con Outlook, no encontraré mi archivo PDF como archivo adjunto, pero encontraré el archivo EML como un archivo adjunto. ¿Alguien tiene una idea?
Intenté dos variantes (con el mismo resultado), utilicé la clase FileDataSource
y la manera simple con MimeBodyPart#attachFile(File)
.
Voy a publicar un ejemplo:
File pdfFile = new File("somePdfFile");
Properties p = System.getProperties();
Session session = Session.getInstance(p);
MimeMessage message = new MimeMessage(session);
// MimeBodyPart txt = new MimeBodyPart();
// txt.setText("");
MimeBodyPart mbp = new MimeBodyPart();
mbp.attachFile(attachment);
// FileDataSource fds = new FileDataSource(attachment);
// fds.setFileTypeMap(new FileTypeMap() {
//
// @Override
// public String getContentType(String arg0) {
// return "application/pdf";
// }
//
// @Override
// public String getContentType(File file) {
// return "application/pdf";
// }
//
// });
// mbp.setDataHandler(new DataHandler(fds));
// mbp.setFileName("/"" + attachment.getName() + "/"");
// mbp.setDisposition(MimePart.ATTACHMENT);
// mbp.setHeader("Content-ID", "Attachment");
Multipart mp = new MimeMultipart();
// mp.addBodyPart(txt);
mp.addBodyPart(mbp);
message.setContent(mp);
File emlFile = new File("message.eml");
emlFile.createNewFile();
message.writeTo(new FileOutputStream(emlFile));
// do something with the EML file
// Desktop.getDesktop().open(emlFile);
Crear un archivo .eml (correo electrónico) en Java
Gracias por su respuesta. Cargué un archivo PDF (que uso para probar, es un HelloWorld simple generado con Crystal Reports) y el archivo EML generado que debe incluir el archivo PDF.
Me acabo de dar cuenta de que si abro el archivo EML vinculado con Apple Mail o con Outlook Express, funciona (pero sin posibilidades de edición). Tal vez es un problema de Microsoft Outlook?
Los enlaces son eliminados
Debería intentar agregar las líneas de encabezado que mencioné en la parte superior del mensaje y ver cómo lo trata Outlook en ese momento. Agregue un To:
From:
Subject:
y tal vez incluso una Date:
con datos reales en ellos, y es más probable que Outlook lo trate como un mensaje, en lugar de solo un archivo.
Zubi, parece que el problema es que el tipo de contenido en el archivo adjunto está configurado en "application / octet-stream". Por lo tanto, parece que el lector de correo está tomando el archivo PDF como una pantalla alternativa para el cuerpo "texto" del mensaje que no existe, (está en blanco).
Tendrás que perdonarme, ha pasado más de un año desde que trabajé con Mime, pero creo que vas a querer A) Poner texto corporal en el mensaje, B) Asegúrate de que el tipo en el archivo adjunto está configurado a application / pdf. Con suerte, esto evitará que la lectura de correo intente mostrar el PDF como el cuerpo principal del mensaje.
Aparte de eso, parece normal ... Ahora, Outlook PODRÍA perra porque no hay encabezados RFC 822 en el cuerpo principal. Es posible que desee agregar al menos un From:
, To:
y un Subject:
El mensaje pasó el código de análisis MY MIME ...