wtorek, grudnia 26, 2006

Obsługa poczty

Jak podejść do problemu obsługi poczty elektronicznej?

Rozróżniamy dwa przypadki: klient do wysyłania poczty i do odbierania.
  1. Pierwsza funkcja jest prosta i można znaleźć wiele gotowych rozwiązań np. w Pythonie, VFP (sweet pototaes), blat itd. Z czytaniem poczty jest trochę trudniej (i zazwyczaj sprowadza się do obsługi repozytorium serwera pocztowego, który może mieć wiele odmian skrzynek np. INBOX czy też inne), chociaż też można znaleźć coś ciekawego: VFP (universal thread), Python, Java (jest przecież standard Java Mail) no i .NET.
  2. Problem dojścia do składnicy przesyłek można zaatakować w rózny sposób:
    1. od zera tj. poprzez rozpisanie interakcji z serwerem pocztowym (zgodnie ze standardem rfc ...) np. gmail,
    2. korzystanie z gotowych komponentów pocztowych oferowanych w danym środowisku systemu operacyjnego (np. technologia COM w Windows, komponent CDO, Outlook w MS Windows),
    3. wykorzystanie gotowych komponentów w danycm języku programowania (oferujących otoczkę - wrapper do dostępu do standardu pocztowego). Otoczka ta może być prosta w postaci obiektu realizującego Java Mail, czy bardzo uniwersalną (a zarazem skomplikowaną) jak to jest w .NET, która w łącza do siebie obsługę wielu innych około-pocztowych standardów.
Najbardziej uniwersalną jest metoda pierwsza czyli implementacja standardu, na drugim miejscu jest implementacja klienta pocztowego w wybranym języku programowania (ponieważ właśnie w nim oprogramowujemy nasz problem).