Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Enterprise Java > JavaMail [Client]

Layoutprobleme? - Styleswitcher!

Antwort
 
Themen-Optionen
Alt 12.04.2007, 18:27 Nach oben    #1
Aristotelis
Neuer Benutzer
 
Registriert seit: 07.04.2007
Beiträge: 7
Standard JavaMail [Client]

Hallo Zusammen,

ich versuche zur Zeit einen eigenen E-Mail client in Java zu schreiben. Ich hole Mails von einem POP3-Server. Alles laeuft mehr oder weniger super. Nur 2 Probleme konnte ich bis jetzt nicht loesen(vielleicht weil ich ganz neu in java bin).

1. Wie finde ich heraus, welche Nachrichten ich noch nicht vom PO3-Server heruntergeladen habe?

2. Die geholten Mails sollen in einem Verzeichnis gespeichert werden, das so z.B strukturiert ist.


C:\tomcat\webapps\Account_NR\Incoming\User\abgehae ngte_datei

P.S. die Leute, die mir nachrichte mit Attachment schicken haben einen Account_NR bei mir zur identifikation. Und unter einem Account_NR koennen mehrere Users sein.
Ich versuche seit einiger Zeit und hab keine Ahnung.
Hat jemand eine Idee?

Danke fuer Ihre Hilfe
Aristotelis ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.04.2007, 18:50 Nach oben    #2
FloB
Erfahrener Benutzer
 
Registriert seit: 12.06.2006
Beiträge: 162
Standard

Zum ersten: Ladt dir doch ne Liste des e-Mailbestandes herunter, den vergleichst du mit dem lokalen bestand und sendest dann eine entsprechende Anfrage für die übrigen Mails.

So würd ichs zumindest machen.
FloB ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.04.2007, 18:52 Nach oben    #3
$traight-$hoota
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 489
Standard

ich vermute mal, bei 1. willst du darauf hinaus, dass neu nachrichten als solche gekennzeichnet werden. da gibt es nur die lösung, dass du abgerufene Mails lokal speicherst (Absender und Uhrzeit sollten als Vergleichspunkt reichen, Betreff etc. wäre noch besser) und neu vom Server geladene Mails mit dieser Liste abgleichst. Ist die Mail dort nicht eingetragen, ist sie neu.

für 2. müsstest du nochmal genauer erklären, wo dein Problem ist! Den richtigen Pfad zu finden? Oder User einem Account zuzuweisen?

[EDIT:] OK, FloB war schneller... hast bei 1. aber die selbe Vermutung/Interpertation wie ich^^
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.04.2007, 20:55 Nach oben    #4
Aristotelis
Neuer Benutzer
 
Registriert seit: 07.04.2007
Beiträge: 7
Standard

Danke Erstmal. Hier ist grub der code, der die mails holt.

$traight-$hoota mein Problem ist genau Den richtigen Pfad zu finden... und dann den User einem Account zuzuweisen, weil sie mehrere unter einem Account sind.



Code:
public class MailEmpfang { 
 
    private String emailuser; 
    private String emailpassword; 
    private String emailserver; 
    private String emailprovider; 
 
    public MailRetriever(String emailuser,String emailpassword,String emailserver,String emailprovider) { 
        this.emailuser=emailuser; 
        this.emailpassword=emailpassword; 
        this.emailserver=emailserver; 
        this.emailprovider=emailprovider; 
    } 
 
 
    public void getMail() { 
        Session session; 
        Store store=null; 
        Folder folder=null; 
        Folder inboxfolder=null; 
 
        Properties props=System.getProperties(); 
        props.setProperty("mail.pop3s.rsetbeforequit","true"); 
        props.setProperty("mail.pop3.rsetbeforequit","true"); 
        session=Session.getInstance(props,null); 
        session.setDebug(true); 
 
        try { 
            store=session.getStore(emailprovider); 
            store.connect(emailserver,emailuser,emailpassword); 
            folder=store.getDefaultFolder(); 
            if(folder==null) throw new Exception("No default folder"); 
            inboxfolder=folder.getFolder("INBOX"); 
            if(inboxfolder==null) throw new Exception("No INBOX"); 
            inboxfolder.open(Folder.READ_ONLY); 
 
            Message[] msgs=inboxfolder.getMessages(); 
 
            FetchProfile fp=new FetchProfile(); 
            fp.add("Subject"); 
            inboxfolder.fetch(msgs,fp); 
 
            for(int j=msgs.length-1;j>=0;j--) { 
                if(msgs[j].getSubject().startsWith("DigiMemo:")) { 
                    setLatestMessage(msgs[j]); 
                    break; 
                } 
            } 
 
            inboxfolder.close(false); 
            store.close(); 
 
        } catch (NoSuchProviderException ex) { 
            ex.printStackTrace(); 
        } catch (MessagingException ex) { 
            ex.printStackTrace(); 
        } catch (Exception ex) { 
            ex.printStackTrace(); 
        } finally { 
            try { 
                if(store!=null) store.close(); 
            } catch (MessagingException ex) { 
                ex.printStackTrace(); 
            } 
        } 
    } 
 
    public Renderable getLatestMessage() { 
        return latestMessage; 
    } 
 
    private Renderable latestMessage; 
 
    void setLatestMessage(Message message) { 
        if(message==null) { 
            latestMessage=null; 
            return; 
        } 
 
        try { 
            if(message.getContentType().startsWith("text/plain")) { 
                latestMessage=new RenderablePlainText(message); 
            } else { 
                latestMessage=new RenderableMessage(message); 
            } 
        } catch (MessagingException ex) { 
            ex.printStackTrace(); 
        } catch (IOException ex) { 
            ex.printStackTrace(); 
        } 
    } 
 
    public static void main(String[] args) { 
        MailRetriever mr=new MailRetriever(args[0],args[1],args[2],args[3]); 
        mr.getMail(); 
        Renderable msg=mr.getLatestMessage(); 
        if(msg==null) { 
            System.out.println("No valid messages in the mail account"); 
        } else { 
            System.out.println("Subject:"+msg.getSubject()); 
            System.out.println("Body Text:"+msg.getBodytext()); 
            System.out.println(msg.getAttachmentCount()+" attachments"); 
            for(int i=0;i<msg.getAttachmentCount();i++) { 
                Attachment at=msg.getAttachment(i); 
                System.out.println(at.getFilename()+" "+at.getContent().length+" bytes of ("+at.getContenttype()+")"); 
            } 
        } 
    } 
}

Sie koennen mich korrigieren, wenn etwas nicht gut geschrieben ist.
Danke

Geändert von Aristotelis (13.04.2007 um 13:35 Uhr).
Aristotelis ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

« Prob. mit ObjectOutPutStream | PHP-Templates als View? »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Umlaute in Subject bei JavaMail bushmaster Allgemeine Java-Programmierung 2 03.02.2005 05:47


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:33 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.6.7, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44