2011-07-06 12 views
6

Przechowuję wiadomości e-mail i ich załączniki w bazie danych. Używam WPF WebBrowser i metody NavigateToString do wyświetlania treści HTML wiadomości e-mail. Działa, ale gdy wiadomości e-mail używają osadzonych obrazów z identyfikatorem treści (cid), nie mogę ich wyświetlić. Zachowałem wszystkie osadzone obrazy jako załączniki, gdy zapisuję wiadomości e-mail w bazie danych. Mogłem tworzyć i przechowywać obrazy w tymczasowych plikach bieżącego użytkownika i zastępować odniesienia cid absolutną ścieżką na dysku użytkownika, ale myślę, że to nie jest najlepszy sposób ...Jak wyświetlać wiadomości e-mail w formacie HTML za pomocą osadzonych obrazów (cid)?

Masz jakieś pomysły?

Odpowiedz

16

końcu znalazłem dobry sposób:

Wymieniłem CID odniesienia wszystkich obrazów z danymi base64 graficznych (RFC 2557) tak:

<img src="data:image/png;base64,RAAAtuhhx4dbgYKAAA7...more data....." alt="test"> 

można użyć następującego kodu do wygenerowania base64 ciąg:

string base64Str = Convert.ToBase64String(File.ReadAllBytes(@"C:\Temp\test.png")); 

Uwagi: nie działa z IE6

+1

Dzięki za opublikowanie ans wer! –

+2

Urocze i eleganckie. P.S. F * ck IE 6. –

+0

Bardzo elegancki, ale uwaga: [Przeglądarki mają ograniczenia dotyczące rozmiaru adresów danych] (http://stackoverflow.com/q/695151/87698). – Heinzi

Powiązane problemy