Frage

Ich werde eine EML -Datei mit einem Anhang mit Javamail erstellen.

Ich habe eine einfache EML -Datei erfolgreich erstellt, aber das Hinzufügen eines Anhangs funktioniert nicht ordnungsgemäß. Ich werde eine PDF -Datei hinzufügen. Meine EML -Datei wird erfolgreich erstellt. Wenn ich die generierte EML -Datei mit Outlook öffne, werde ich nicht meine PDF -Datei als Anhang finden, aber die EML -Datei selbst als Anhang finden. Hat jemand eine Idee?

Ich habe zwei Varianten ausprobiert (mit demselben Ergebnis), ich habe das verwendet FileDataSource Klasse und der einfache Weg mit MimeBodyPart#attachFile(File).

Ich werde ein Beispiel veröffentlichen:

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);

Erstellen Sie eine .EML -Datei (E -Mail) in Java


Danke für Ihre Antwort. Ich habe eine PDF -Datei hochgeladen (die ich zum Testen verwende. Es handelt sich um eine einfache Helloworld, die mit Kristallberichten generiert wurde) und die generierte EML -Datei, die die PDF -Datei enthalten sollte.

Mir ist gerade aufgefallen, dass, wenn ich die verknüpfte EML -Datei mit Apple Mail oder mit Outlook Express öffne (jedoch ohne Möglichkeit). Vielleicht ist es ein Problem von Microsoft Outlook?

Die Links werden entfernt

War es hilfreich?

Lösung

Sie sollten versuchen, die Kopfzeilen hinzuzufügen, die ich ganz oben in der Nachricht erwähnt habe, und sehen, wie Outlook dann damit umgeht. Füge hinzu ein To:, From:, Subject: Und vielleicht sogar a Date: Mit echten Daten und Outlook behandelt es eher als Nachricht, sondern nur als Datei.

Andere Tipps

Zubi, es sieht so aus, als ob das Problem der Inhaltstyp des Anhangs auf "Anwendung/Oktettstrom" eingestellt ist. Es sieht also so aus, als würde der Mail -Leser die PDF -Datei als alternative Anzeige für den "Text" -Körper der Nachricht nennen, der nicht existiert (es ist nur leer).

Sie müssen mir vergeben, es ist mehr als ein Jahr her, seit ich mich mit Mime befasst habe, aber ich denke, Sie werden a) einen Körpertext in die Nachricht einfügen, b) Stellen Sie sicher ist auf Anwendung/PDF eingestellt. Hoffentlich verhindert dies, dass das Mail -Lesen versucht, die PDF als primärer Körperteil der Nachricht anzuzeigen.

Davon abgesehen sieht es normal aus ... jetzt könnte Outlook schlampen, weil es keine RFC 822 -Header im Hauptkörper gibt. Möglicherweise möchten Sie mindestens a hinzufügen From:, To:, und ein Subject:.

Die Nachricht hat meinen Mime Parsing -Code übergeben ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top