Layoutprobleme? - Styleswitcher!
![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Neuer Benutzer Registriert seit: 07.04.2007
Beiträge: 7
| 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 |
| | |
| | Nach oben #2 |
| Erfahrener Benutzer Registriert seit: 12.06.2006
Beiträge: 162
| 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. |
| | |
| | Nach oben #3 |
| Johannes Müller Registriert seit: 15.09.2005 Ort: Königreich Flieden
Beiträge: 487
| 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 |
| | |
| | Nach oben #4 |
| Neuer Benutzer Registriert seit: 07.04.2007
Beiträge: 7
| 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). |
| | |
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Umlaute in Subject bei JavaMail | bushmaster | Allgemeine Java-Programmierung | 2 | 03.02.2005 06:47 |
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:19 Uhr.
Nach oben






