2009-06-09 2 views
5

Co teraz robię z Outlookiem:Jak korzystać z Delphi, aby pobrać tekst wiadomości e-mail z Thunderbirda

Otrzymuję wiadomości e-mail z zamówieniami na produkty. Wybieram pojedyncze lub wiele wiadomości e-mail w programie Outlook (pojedyncze zamówienie może zawierać wiele wiadomości e-mail), a następnie przełącz się do mojego programu OrderManager z kodowaniem Delphi i kliknij "Importuj". Wykorzystuje interfejs automatyzacji COM programu Outlook do czytania tekstu każdej wiadomości, analizowania i przetwarzania każdego z nich.

Pytanie brzmi, czy mogę to zrobić za pomocą Thunderbirda? Czy Thunderbird ma interfejs COM? Muszę szukać w Google niewłaściwych słów kluczowych, ponieważ jeszcze nic nie znalazłem.

Btw, mam wersję mojego OrderManagera, który czyta wiadomości bezpośrednio z mojego serwera pocztowego przy użyciu Indy, ale z kilku powodów chciałbym spróbować odczytać je z Firefoksa.

Wszelkie sugestie, linki do dokumentów lub próbki kodu będą bardzo mile widziane!

Odpowiedz

5

Sprawdź to link na zewnątrz.

Możesz napisać opakowanie C lub C++ wokół XPCOM, a następnie użyć tego opakowania w Delphi.

Istnieje również open source XPCOM wrapper written in Delphi. Możesz również to sprawdzić. Dziękuję Stijn za wskazanie tego.

Mam nadzieję, że to pomaga.

+1

Używam tego opakowania XPCOM w Delphi: http://d-gecko.svn.sourceforge.net/viewvc/d-gecko/trunk/GeckoSDK/ –

+0

Dzięki Pablo i Stijn! To bardzo pomocne. – MarkF

3

Możesz także samemu sparsować pliki skrzynki pocztowej Thunderbirda.

  • Od %APPDATA%\Thunderbird\profiles.ini przeczytać gdzie folder profilu znajduje się (jeśli jest więcej niż jeden profil, patrzeć przez sekcje Profile .. Profilen na taki, który ma wartość Default=1)
  • Każdy podfolder podfolderów Mail i/lub ImapMail folderu profilu reprezentuje konto (Mail zawiera konta POP, ImapMail zawiera konta IMAP);
  • Przejrzyj wszystkie pliki, których nazwy nie kończą się na .dat lub .msf, i, których zawartość rozpoczyna się od "From" (F, r, o, m i spacja). To są mailbox files.
  • Każda linia zaczynająca się od "From " oznacza nową wiadomość. Użyj numeru X-Mozilla-Status header, aby dowiedzieć się, czy wiadomość jest nadal ważna, czy też została oznaczona do usunięcia. (Możesz użyć obiektu COM CDO.Message, aby przeanalizować wiadomość dla ciebie, jeśli chcesz).

Należy recurse dla każdego podfolderu kończącym się na „.sbd”, ponieważ będzie zawierać podfoldery skrzynki pocztowej (np Inbox.sbd będzie zawierać foldery poczty pod skrzynki odbiorczej).

Uważaj jednak na problemy z blokowaniem plików.