Zapis emaili do pliku

0

Witam.
Zrobiłem sobie takiego klienta pocztowego, który odbiera i wysyła emaile, wiadomo.
Chodzi mi o to, aby zrobić teraz kopię odebranych i wrzucić je do folderu Odebrane tak żebym mógł je po zapisaniu usunąć z serwera.
Jak zapisać np. Body powiedzmy do bazy Firebird, jeśli te body ma wstawki z flasha, jakieś jpegi i inne tam?
Sam zwykły tekst umiem zapisać czyli Temat, nadawcę itd,, no i treść (body) jeśli to jest zwykły tekst.
Oczywiście chcę zapisywac z takim samym formatowaniem tekstu jak przysłano.

Jak to zrobili np. w Outlooku lub Operze?
Czy przez idmessage1.SaveToFile mogę jakoś zapisać pocztę do pliku, ale z pełnym formatowaniem tekstu i żeby to potem mógł odczytać w swoim programie?
Spróbowałem powyższym kodem zapisać to w pliku miałem praktycznie wszystko w kupie. Chyba że to jakoś parsowac potem.

0

Opcje zapisu widzę dwie.

  1. Zapisujesz to co produkuje idmessage1.savetofile, lub lepiej od razu savetostream. Jak chcesz odczytać, to robisz idmessage1.loadfromstream i czuj się jakbyś to ściągnął z serwera. Ma to ten plus że masz dostęp do wiadomości w formie w jakiej była na serwerze. Nie przejmujesz się załącznikami, kodowaniem ... Ładujesz wszystko do pola typu BLOB i już. Minusy są takie, że trudniej coś odszukać w treści, temacie tak przechowywanej wiadomości. No i za każdym razem trzeba to wszystko dekodować (choć to czasem może i lepiej). Flaszami, jpg'ami się nie przejmujesz - są osadzone w pliku wiadomości - zapiszą się i wczytają same. Co innego te które są osadzone z zewnętrznych serwerów.

  2. Rozbijasz to na atomy:
    -text part
    -html part
    -subject
    -odbiorcy, i inne duperele
    -załączniki (zwykłe i do treści czyli te z CID'ami)
    i te atomy zapisujesz do osobnych pól. Przydało by się do tego master-detail (załączniki, odbiorcy ...) Ma to wiele zalet, sam stosuję taką metodę. Minusy np są takie, że tracisz np extra headersy. Inny minus to taki że jak jakiś mail jest do d**y sformatowany, i coś się schrzani na etapie parsowania (a indy ma wiele takich czułych miejsc), to do bazy może Ci pójść coś nie halo.
    Łatwiej się wyszukuje, przegląda się szybciej.

You have to choose.

P.S. Jakby aplikację o której wspomniałem tworzył od początku, to być może szedłbym w kierunku połączenia obu rozwiązań.

b

1 użytkowników online, w tym zalogowanych: 0, gości: 1