chcialbym pobrane za pomoca JavaMail wiadomosci, zapisywac do bazy danych tak,
by potem mozna bylo je w kazdej chwili wyswietlac z bazy danych. Chcialbym miec
mozliwosc zapisywania CALYCH maili - wraz z zalacznikami, obrazkami w tresci
maila itp.
Jak to zrobic?
Czy da sie zapisac do bazy danych caly obiekt Message jako blob'a, a pozniej
odczytac go z bazy jako obiekt Message i dalej przetwarzac w celu jego
wyswietlenia?
Czy ktos moze mi udzielic wskazowek jak to zrobic, ewentualnie podeslac jakis
krotki przyklad.
Pozdrawiam
D.
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
rtfm
http://java.sun.com/products/javamail/javadocs/javax/mail/internet/MimeMessage.html#MimeMessage(javax.mail.Session,%20java.io.InputStream)
MimeMessage.writeTo
wojtek
1. zapisuje maile do bazy tak:
ByteArrayOutputStream bout = new ByteArrayOutputStream();
message.writeTo(bout);
byte[] byteArray = bout.toByteArray();
MyMail mail = new MyMail();
mail.setMessage(byteArray);
mail.save();
gdzie MyMail jest obiektem torque a metoda setMessage zapisuje BLOBA
2. probuje odczytac tak:
MyMail mail = MyMailPeer.retrieveByPK(1);
InputStream in = new InputStream(mail.getMessage());
ObjectInputStream s = new ObjectInputStream(in);
w tym momencie dostaje komunikat:
java.io.StreamCorruptedException: invalid stream header
at java.io.ObjectInputStream.readStreamHeader
(ObjectInputStream.java:737)
at java.io.ObjectInputStream.(ObjectInputStream.java:253)
dlaczego?
co jest zle?
zapisujesz tablice bajtow (ByteArrayOutputStream) a probujesz odczytac
obiekt (ObjectInputStream).
wojtek
jestem poczatkujacy w javie, wiec moze czegos nie wiem..
instrukcja: mail.getMessage() zwraca mi tablice bajtow (byte[]) - niech Cie nie
zwiedzie nazwa metody - ona nie zwraca mi obiektu Message, ale byte[]
tworze z otrzymanje tablicy bajtow InputStreem, potem ObjectOutpuStream by
finalnie z tej zapisanej w bazie jak blob tablicy bajtow odtworzyc obiekt
Message JavaMail'a..
i dostaje wspomniany komunikat :(
jak to zrobic by bylo dobrze?
a moze jest inny sposob zapisywania maili do bazy (razem z zalacznikami i
html), by potem latwo mozna je bylo pobrac z niej i wyswietlic na www?