# Mail und Mime Type



## Robinson (11. Sep 2006)

Ich verschicke aus Java herraus E-Mails per Java Mail API.

Klappt alles super.

Wenn ich Anhänge an eine Mail anhänge dann gibt es ein unschönes Verhalten.
Im Thunderbird werden zu den Anhängen nicht die spezifischen Icons dargestellt.

Ich habe versucht den MimeType zu setzen, aber leider ohne Erfolg.
Er wirft eine Exception dass der MIME Type (image/jpeg) nicht bekannt ist.

Was muss ich tun um die EMail mit dem zugehörigen MIME-Type zu versenden?

Danke


----------



## robertpic71 (12. Sep 2006)

Also ich lasse das den DataHandler (activiation.jar von Sun Mail-API) erledigen. Der ordnet aufgrund der Endung den richtigen Mimetype zu.

Hier aus meiner MailUtil:


```
...
    protected Message msg;         // die eigentliche Nachricht
    protected Multipart mp;        //  für mehrteilige Nachrichten
..
    public void setSingleAttachment(String fileName, String displayName)
                                         throws MessagingException {

        FileDataSource fds = new FileDataSource(fileName);
   	msg.setDataHandler(new DataHandler(fds));
        msg.setFileName(displayName);
        this.mimeMultiPart = false;
    }

    public void addAttachment(String fileName, String displayName)
                                         throws MessagingException {
        MimeBodyPart mbpx = new MimeBodyPart();

        FileDataSource fds = new FileDataSource(fileName);
   	System.out.println(fds.getContentType());   // gefunden Mimetype ausgeben
	mbpx.setDataHandler(new DataHandler(fds));
        mbpx.setFileName(displayName);

        mp.addBodyPart(mbpx);
    }
....
```

Wenn nur nur ein Attachment und keinen Text hast, kannst du das Attachment direkt bei der *Message* angeben.
Bei mehrteiligen e-Mails (z.B. Attachment + Text) braucht du das das Objekt *Multipart*, dass du später der Nachricht anhängtst.
z.B.

```
if (mimeMultiPart) {
    msg.setContent(mp);
}
```

fileName = Name der Datei im Dateisystem
displayName = so heißt die Datei in der e-Mail (Anzeige beim Empfänger)

Robert P.


----------



## Robinson (12. Sep 2006)

Genau so mache ich das auch, aber die Icons werden dennoch nicht richtig dargestellt.

Wenn ich aus meinem Mail Client (Outlook, Thunderbird,..) heraus Mails sende so werden doc Files mit Word Icon angezeigt. Aus meinem Java Client herraus nicht.

OUTLOOK bildet mal wieder ne Ausnahme. Da werden immer die Windoof Icons angezeigt


----------



## robertpic71 (12. Sep 2006)

Die Default-Mimetypes stehen in der activation.jar herum. Man kann aber auch eine eigene Version dieses Files anlegen.



> MIME types file search order:
> 
> The MimetypesFileTypeMap looks in various places in the user's system for MIME types file entries. When requests are made to search for MIME types in the MimetypesFileTypeMap, it searches MIME types files in the following order:
> 
> ...



Siehe auch hier.


----------



## Robinson (12. Sep 2006)

OK, ich versuche das morgen mal.

Vielen Dank schon mal im Vorraus.


----------

