Mail und Mime Type

Status
Nicht offen für weitere Antworten.

Robinson

Mitglied
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

Bekanntes Mitglied
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:

Code:
...
    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.
Code:
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

Mitglied
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

Bekanntes Mitglied
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:

1. Programmatically added entries to the MimetypesFileTypeMap instance.
2. The file .mime.types in the user's home directory.
3. The file <java.home>/lib/mime.types.
4. The file or resource named META-INF/mime.types.
5. The file or resource named META-INF/mimetypes.default (usually found only in the activation.jar file).

MIME types file format:

# comments begin with a '#'
# the format is <mime type> <space separated file extensions>
# for example:
text/plain txt text TXT
# this would map file.txt, file.text, and file.TXT to
# the mime type "text/plain"

Siehe auch hier.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Versenden einer MIME-Datei per E-Mail [solved] Netzwerkprogrammierung 5
E Custom E Mail Adresse mithilfe Serversocket oder ähnliches Netzwerkprogrammierung 21
N Link aus einer E-Mail aufrufen Netzwerkprogrammierung 2
M Mit Java Mail Mails an Webmailer schicken Netzwerkprogrammierung 1
T E-Mail versenden. Netzwerkprogrammierung 8
Niggo_ Probleme mit Java Mail Netzwerkprogrammierung 14
K Probleme bei HTML-Mail-Abruf mit IMAP bei 1und1 Netzwerkprogrammierung 2
M E-Mail - Verbinden zu web.de Netzwerkprogrammierung 8
S mail versand Netzwerkprogrammierung 1
G Mail senden funktioniert nicht mit SSL Netzwerkprogrammierung 7
E Wie kann man einen einfachen E-Mail Server schreiben Netzwerkprogrammierung 2
D Java Desktop Mail, vorbereitete Mail Netzwerkprogrammierung 5
D JavaMail: HTML Code einer Mail Netzwerkprogrammierung 9
M Mail über Exchange versenden Netzwerkprogrammierung 13
T Java Mail port ändern Netzwerkprogrammierung 4
V Java Mail Api - IMAP Problem Netzwerkprogrammierung 6
F TLS bei mail benutzen Netzwerkprogrammierung 2
T E-Mail über javax.mail.Message Netzwerkprogrammierung 2
N E-mail versenden Netzwerkprogrammierung 4
A html - E-mail - Bilder Netzwerkprogrammierung 4
A attachment einer Mail speichern Netzwerkprogrammierung 5
G Validierung von Internetadressen - Kontroll Mail oder so. Netzwerkprogrammierung 4
B log4j e-mail appender Netzwerkprogrammierung 4
B Mail Server selber schreiben Netzwerkprogrammierung 26
S Mail anhang in InputStream packen Netzwerkprogrammierung 5
F Java Mail . Exception java.lang.NoClassDefFoundError Netzwerkprogrammierung 2
B Url-Link aus einer E-Mail aufrufen Netzwerkprogrammierung 2
G Java Mail etwas unsicher? Netzwerkprogrammierung 4
H Mail über URLConnection Netzwerkprogrammierung 8
G MAIL API Netzwerkprogrammierung 4
K Problem bei Mail-Versand mit Anhängen Netzwerkprogrammierung 2
L JavaMail: Mail in Posteingang aber nicht in Versendet Netzwerkprogrammierung 2
M SMTP-Mail Netzwerkprogrammierung 2
E smtp Zugriffsproblem mit Java Mail API Netzwerkprogrammierung 3
H E-Mail Programm Netzwerkprogrammierung 3
P MIME-TYPE Erklaerung, Kommunikation zwischen Client und Server Netzwerkprogrammierung 3
T HTTP Rest Anfrage mit JettyServer->415 "Unsupported Media Type" Response Netzwerkprogrammierung 0
E HttpUrlConnectionExample cannot be resolved to a type / Java 8 Netzwerkprogrammierung 1
D [CORBA] Eigenes Objekt in idl? undefined type Netzwerkprogrammierung 5

Ähnliche Java Themen


Oben