Hi Leute,
ich bin gerade dabei mich mit GWT zu beschäftigen und habe daher angefangen eine Webmail Application zu schreiben.
Was ich bisher mache:
Ich gebe über eine Loginseite meinen USER und PSW ein und sende diese über einen RPC Call an den MailService auf dem WebServer. Dieser verbindet sich dann via javaMail API mit dem Mailserver und erzeugt alle notwendigen Objekte Session, Store, Folder.
Anschließend werden die Nachrichten in einem Message Array abgelegt.
Das ganze sieht dann wie folgt aus:
Mein Problem ist nun:
Wie bekomm ich das Message[] Objekt nun zurück an den (GWT) Client damit dieser die Mails im Browser auflisten kann? Ich kann leider nicht das Message[]-Objekt über den callback zurückgeben da Message ein Element aus der javaMail API ist die es in GWT nicht gibt.
Also nochmal kurz:
Wie kann ich die Mails vom Server auf den Client bekommen so dass ich sie dort anzeigen kann??
Ich hoffe ihr könnt mir weiter helfen
Viele Grüße.
ich bin gerade dabei mich mit GWT zu beschäftigen und habe daher angefangen eine Webmail Application zu schreiben.
Was ich bisher mache:
Ich gebe über eine Loginseite meinen USER und PSW ein und sende diese über einen RPC Call an den MailService auf dem WebServer. Dieser verbindet sich dann via javaMail API mit dem Mailserver und erzeugt alle notwendigen Objekte Session, Store, Folder.
Anschließend werden die Nachrichten in einem Message Array abgelegt.
Das ganze sieht dann wie folgt aus:
Java:
.....
try{
//System Properties holen
Properties properties = System.getProperties();
//Mail-Server properties: Session verlangt die Informationen über Host, User, Passwd etc.
properties.put("mail.imap.host", host);
properties.put("mail.imap.auth", "true");
//Initialisierung der Auth-Klasse zur Mail-Account-Authentisierung; in Session benutzt
Authenticator auth = new MailAuthenticator();
//Verbindung zum MailServer
Session mailSession = Session.getDefaultInstance(properties, auth);
//Gibt in der Console eine Debug-Meldung zum Verlauf aus
mailSession.setDebug(true);
Folder mailFolder = openIMAPInboxReadOnly(mailSession);
//HIER LIEGT NUN ALLES DRIN
Message messages[] = mailFolder.getMessages();
closeInbox(mailFolder);
}catch(Exception err){
System.out.println("Die Anmeldung ist fehlgeschlagen!");
System.out.println(err);
}
}
/**
* Erzeugt das Authenticator-Objekt zur Anmeldung am MailAccount
* @author Kumaro
*
*/
private class MailAuthenticator extends javax.mail.Authenticator {
public PasswordAuthentication getPasswordAuthentication(){
//System.out.println("User: "+ user + "/ Pasw: " + password);
return new PasswordAuthentication(user, password);
}
}
/**
* Erzeugt das Store-Objekt über IMAP und legt die EMails dann im MailFolder ab und gibt dieses Objekt zurück
* @param mailSession
* @return mailFolder
* @throws MessagingException
*/
private Folder openIMAPInboxReadOnly(Session mailSession) throws MessagingException{
//Store dient zum Ablegen der Nachrichten
Store mailStore = mailSession.getStore("imap");
mailStore.connect();
//Folder ist ein Ordner-Objekt für Mails
Folder mailFolder = mailStore.getFolder("INBOX");
mailFolder.open(Folder.READ_ONLY);
return mailFolder;
}
/**
* Beendet die Verbindung zum InboxOrdner
* @param mailFolder
* @throws MessagingException
*/
private void closeInbox(Folder mailFolder) throws MessagingException{
mailFolder.close(false);
mailFolder.getStore().close();
}
Mein Problem ist nun:
Wie bekomm ich das Message[] Objekt nun zurück an den (GWT) Client damit dieser die Mails im Browser auflisten kann? Ich kann leider nicht das Message[]-Objekt über den callback zurückgeben da Message ein Element aus der javaMail API ist die es in GWT nicht gibt.
Also nochmal kurz:
Wie kann ich die Mails vom Server auf den Client bekommen so dass ich sie dort anzeigen kann??
Ich hoffe ihr könnt mir weiter helfen
Viele Grüße.
Zuletzt bearbeitet: