Hi,
ich lese mit Javamail ein IMAP-Konto unseres Mailservers aus. Das klappt soweit erstmal:
Ich möchte aber gern noch eventuelle Mailanhänge in einem gewissen Verzeichnis speichern. Dazu habe ich ne Menge gegoogelt, aber nichts passendes gefunden!
Wie kann ich auf einen Anhang einer ausgelesenen Mail erstmal irgendwie zugreifen und diesen dann speichern?
Danke und Gruß
ich lese mit Javamail ein IMAP-Konto unseres Mailservers aus. Das klappt soweit erstmal:
Code:
public static void getMail(){
String imapHost = "10.0.0.1";
String username = "User1";
String password = "geheim";
try{
//Get system properties
Properties props = System.getProperties();
//Mail-Server properties: Session verlangt die Informationen über Host, User, Passwd etc.
props.put("mail.imap.host", imapHost);
props.put("mail.imap.auth", "true");
//Initialisierung der Auth-Klasse zur Mail-Account-Authentisierung; in Session benutzt
MailAuthenticator auth = new MailAuthenticator(username, password);
//Session: steht für die Verbindung mit dem Mail-Server
Session session = Session.getDefaultInstance(props, auth);
//Gibt in der Console Debug-Meldungen zum Verlauf aus
session.setDebug(false);
//Store: dient dem zum Ablegen der Nachrichten
Store store = session.getStore("imap");
store.connect();
//Folder: ist ein Ordner-Object für Mails
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
Message message[] = folder.getMessages();
for(int i=0;i<message.length;i++){
Message m = message[i];
System.out.println( "-----------------------\nNachricht: " + i );
System.out.println( "Von: " + Arrays.toString(m.getFrom()) );
System.out.println( "Betreff: " + m.getSubject() );
System.out.println( "Gesendet am: " + m.getSentDate() );
System.out.println( "ContentType: " + new ContentType(m.getContentType()) );
System.out.println( "Content: " + m.getContent() );
//Nachricht ist eine einfache Text- bzw. HTML-Nachricht
if( m.isMimeType("text/plain") ){
System.out.println( m.getContent() );
}
//Nachricht ist eine Multipart-Nachricht (besteht aus mehreren Teilen)
if( m.isMimeType("multipart/*") ){
Multipart mp = (Multipart) m.getContent();
for( int j=0;j<mp.getCount();j++ ){
Part part = mp.getBodyPart(j);
String disposition = part.getDisposition();
if( disposition == null ){
MimeBodyPart mimePart = (MimeBodyPart) part;
if( mimePart.isMimeType("text/plain") ){
BufferedReader in = new BufferedReader( new InputStreamReader(mimePart.getInputStream()) );
for( String line; (line=in.readLine()) != null; ){
System.out.println( line );
}
}
}
}
}//if Multipart
}
folder.close( false );
store.close();
}catch(Exception err){
System.out.println(err);
}
}
Wie kann ich auf einen Anhang einer ausgelesenen Mail erstmal irgendwie zugreifen und diesen dann speichern?
Danke und Gruß