Wysyłaj wiadomości e-mail (i załączniki) za pomocą Delphi i Indy
Pełny kod źródłowy aplikacji nadawcy wiadomości e-mail
Demo nadawcy poczty.
Poniżej znajdują się instrukcje tworzenia „nadawcy wiadomości e-mail”, który zawiera opcję wysyłania wiadomości e-mail i załączników bezpośrednio z aplikacji Delphi. Zanim zaczniemy, rozważ alternatywę...
Załóżmy, że masz aplikację, która operuje między innymi na danych z bazy danych. Użytkownicy muszą eksportować dane z Twojej aplikacji oraz wysłać dane e-mailem (np. raport o błędzie). Bez podejścia opisanego poniżej, musisz wyeksportować dane do zewnętrznego pliku, a następnie użyć klienta poczty e-mail, aby je wysłać.
Wysyłanie wiadomości e-mail z Delphi
Istnieje wiele sposobów wysyłania wiadomości e-mail bezpośrednio z Delphi, ale najprostszym sposobem jest użycie Wykonanie powłoki API. Spowoduje to wysłanie wiadomości e-mail przy użyciu domyślnego klienta poczty e-mail zainstalowanego na komputerze. Chociaż takie podejście jest akceptowalne, nie można w ten sposób wysyłać załączników.
Inna technika wykorzystuje Microsoft Outlook i OLE do wysyłania e-maili, tym razem z obsługa załączników, ale wtedy wymagane jest użycie MS Outlook.
Jeszcze inną opcją jest użycie wbudowanej obsługi Delphi dla Windows Simple Mail API. Działa to tylko wtedy, gdy użytkownik ma zainstalowany program pocztowy zgodny ze standardem MAPI.
Technika, którą tutaj omawiamy, wykorzystujeIndyKomponenty (Internet Direct) - świetny pakiet komponentów internetowych składający się z popularnych protokołów internetowych napisanych w Delphi i opartych na gniazdach blokujących.
Metoda TIdSMTP (Indy)
Wysyłanie (lub pobieranie) wiadomości e-mail z komponentami Indy (dostarczanymi z Delphi 6+) jest tak proste, jak upuszczenie komponentu lub dwóch na formularzu, ustawienie niektórych właściwości i „kliknięcie przycisku”.
Aby wysłać e-mail z załącznikami z Delphi za pomocą Indy, będziemy potrzebować dwóch komponentów. Po pierwsze TIdSMTOP służy do łączenia i komunikacji (wysyłania poczty) z serwerem SMTP. Po drugie, TIdMessage obsługuje przechowywanie i kodowanie wiadomości.
Kiedy wiadomość jest konstruowana (kiedy TIdMessage jest „wypełniony” danymi), wiadomość e-mail jest dostarczana na serwer SMTP za pomocą TIdSMTP .
Kod źródłowy nadawcy wiadomości e-mail
Stworzyłem prosty projekt nadawcy poczty, który wyjaśnię poniżej. Tutaj możesz pobrać pełny kod źródłowy.
Notatka: Ten link jest bezpośrednim pobraniem do pliku ZIP projektu. Powinieneś być w stanie go otworzyć bez żadnych problemów, ale jeśli nie możesz, użyj 7-zip aby otworzyć archiwum, aby móc wyodrębnić pliki projektu (które są przechowywane w folderze o nazwie Wyślij maila ).
Jak widać na zrzucie ekranu z czasu projektowania, aby wysłać wiadomość e-mail za pomocą TIdSMTP komponentu, musisz przynajmniej określić serwer pocztowy SMTP (host). Sama wiadomość wymaga wypełnienia zwykłych części wiadomości e-mail, takich jak Z , Do , Temat itp.
Oto kod, który obsługuje wysłanie jednego e-maila z załącznikiem:
|_+_|Notatka: Wewnątrz kodu źródłowego znajdziesz dwie dodatkowe procedury, które są używane do tworzenia wartości Gospodarz , Z , oraz Do edytuj pola trwałe, używając pliku INI do przechowywania.