Email Client in der eigenen Software einbauen

beta20

Top Contributor
Hallo zusammen,

ich möchte gerne innerhalb meiner App einen Emailclient integrieren.

Also sprich mehr oder weniger 2 HTML-Seiten:
- Emailpostfach (wie z.B. bei GMX)
- Email senden

Technologien sind hierfür:
- JAVA EE
- JSF + Primefaces

Was soll es können:
- Emails versenden
- Emails empfangen

Das ganze funktioniert soweit auch schon. Leider habe ich noch etwas Performance Schwierigkeiten, hierzu gibt es aber meines Wissens eine FETCH Funktion, sodass man nicht immer alle Emails holt und auch nur die wichtigen Infos (Sender, Subject). Habe das noch nicht im Detail getestet.
Body wird dann erst wirklich beim Öffnen der Email geholt.

Ich habe es bisher nur mit 1-2 Emailaccounts getestet.
Von einer anderen Software, weiß ich, dass es zu diversen Performance Schwierigkeiten bei verschiedenen Anbieter kommt.
Die Entwickler von dieser Software haben das nun wohl so implementiert (GOlive soll diese / übernächste Woche) passieren.
- Alle wichtigen Infos (Sender, Betreff, Sendedatum) werden direkt auf dem DB-Server der Applikation gespeichert.
- Dies soll den Zugriff der Emails um mind. 100% steigern.

Ich frage mich allerdings macht das wirklich Sinn? Die Daten werden doch dann redundant vorgehalten.
Zudem muss die App ja auch mitbekommen, wenn z.B. in Outlook eine Email gelöscht wird, dann muss diese ja auch in der DB von der Applikation gelöscht werden.

Würde mich über ein paar Tipps freuen, ob das sinnhaft ist, was die dort implementieren...
Danke
 
@Horstii2:
Das weiß ich und wurde auch bereits implementiert. Mich interessiert mehr, ob das Sinn macht was die Kollegen der anderen Software da machen...
 
Die Frage ist also, ob Caching Sinn macht. Die einzig sinnvolle Antwort, die es darauf geben kann: kommt darauf an 🙂

Ohne Caching wird die Sache natürlich wesentlich einfacher. Wenn es aber massive Geschwindigkeitsprobleme gibt, dann muss man ggf. in den sauren Apfel beißen.

Durch den Zwischenspeicher holt man sich Komplexität und ggf. neue Probleme an Bord. Dein Kritikpunkt ist nun der, dass man mit einem veralteten Stand arbeitet. Das ist richtig, gilt aber zu einem gewissen Grad fast immer, also auch dann, wenn man ohne Cache arbeitet - nur mit kürzeren Zeiträumen.

Nimm z. B. einen Account, auf den mehrere Leute Zugriff haben. Benutzer A löscht nun zum Zeitpunkt X eine Mail, zum Zeitpunkt X+2 bekommt das meine Anwendung mit und bereinigt den Cache. Wenn ich nun aber zum Zeitpunkt X+1 versuche, die Mail zu öffnen, existiert diese auf dem Server schon nicht mehr. Daher muss ich eine Meldung darüber erhalten, dass die Mail nicht mehr zur Verfügung steht.

Das gleiche kann passieren, wenn man die Mails zwischenspeichert. Dort hat man es nur mit größeren Zeitspannen zu tun. Die Behandlung des Problems kann aber ggf. genauso funktionieren: der Anwender bekommt einfach eine entsprechende Meldung und die Mail wird aus dem Cache entfernt.
 

Neue Themen


Zurück
Oben