Contents

Jak zautomatyzować wysyłanie wiadomości e-mail w Outlooku za pomocą Pythona

Python ma wiele do zaoferowania w zakresie automatyzacji, a wiele funkcji można osiągnąć za pomocą zaledwie kilku linijek kodu. Język ten zyskał popularność w wielu dziedzinach, od analizy danych po administrację systemami.

Outlook jest powszechnie używaną aplikacją poczty elektronicznej, a wykorzystanie możliwości Pythona do automatyzacji Outlooka pozwala użytkownikom na efektywne wysyłanie wiadomości przy minimalnym wysiłku.

Aby zdobyć wiedzę na temat procesu wysyłania zautomatyzowanych wiadomości za pośrednictwem poczty e-mail przy użyciu aplikacji Microsoft Outlook w Pythonie, konieczne jest kontynuowanie czytania.

Spełnienie kilku warunków wstępnych

Aby rozpocząć proces, należy uzyskać i skonfigurować niezbędne komponenty oprogramowania. Może to wymagać pobrania i zainstalowania określonych aplikacji lub modułów, które są wymagane do wykonania danego zadania. Po ich zainstalowaniu można przystąpić do konfigurowania ich zgodnie z własnymi potrzebami i integrowania ich z przepływem pracy.

Microsoft Outlook to popularny klient poczty e-mail, który do poprawnego działania wymaga instalacji na komputerze. Może być używany w połączeniu z różnymi dostawcami poczty e-mail, w tym kontami Gmail i innymi.

Wykorzystanie modułu win32com.client umożliwia płynną interakcję z różnymi aplikacjami Microsoft za pośrednictwem Pythona. Wśród tych aplikacji, Microsoft Outlook stanowi godny uwagi przykład, który wymaga integracji tej biblioteki do nawiązywania połączeń z serwerem Outlook Exchange.

Instalacja win32com.client

Wykorzystanie win32com.client stanowi kluczowy element tego skryptu, ułatwiając płynną współpracę między Microsoft Outlook i Python poprzez wykorzystanie kompleksowej biblioteki, która umożliwia solidne ustanowienie komunikacji między tymi dwiema platformami.

Sprawdź wersję win32com.client

Przed instalacją można sprawdzić, czy moduł win32com został wstępnie zainstalowany w systemie. W niektórych przypadkach określone iteracje zintegrowanego środowiska programistycznego (IDE) zawierają ten pakiet jako standardowy komponent. Dostępność modułu win32com można potwierdzić za pomocą następującego polecenia.

 python -m pip show pywin32 

Aby rozwiązać błąd “‘pip’ nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne”, może być konieczne zainstalowanie pip w systemie operacyjnym, jeśli nie jest jeszcze dostępny.Można to zrobić, pobierając i uruchamiając odpowiedni instalator dla systemu Windows, macOS lub Linux z oficjalnej strony Pythona lub korzystając z menedżerów pakietów, takich jak Homebrew (dla macOS) lub APT/APT-GET (dla Ubuntu).

Po wykonaniu wcześniej wspomnianego polecenia, w przypadku wyświetlenia numeru wydania, nie ma potrzeby dodatkowej instalacji, ponieważ został on już zainstalowany w systemie.

/pl/images/verify-installation-setup-in-terminal-window-1.jpg

W przypadku napotkania komunikatu o błędzie wskazującego na brak wymaganego komponentu, może być konieczne zainstalowanie biblioteki “win32com” na urządzeniu w celu rozwiązania problemu.

 'pywin32' is not recognized as an internal or external command, operable program, or batch file. 

Instalowanie biblioteki win32com

Otwórz terminal lub okno wiersza polecenia, przejdź do żądanego katalogu i wprowadź odpowiednie polecenie pip, aby zainstalować żądaną bibliotekę.

 python -m pip install pywin32 

/pl/images/install-pywin32com-on-windows-3.jpg

Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby zakończyć proces instalacji. Aby potwierdzić, że win32com został pomyślnie zainstalowany, możesz użyć polecenia show po zakończeniu instalacji.

 python -m pip show pywin32 

Wysyłanie wiadomości e-mail z Pythona za pomocą Outlooka

Outlook to starożytny i rozpowszechniony klient poczty e-mail, który zajmuje znaczącą pozycję wśród najpopularniejszych aplikacji pocztowych, ustępując jedynie Gmailowi i Yahoo pod względem popularności. Warto zauważyć, że Python oferuje płynną integrację z Outlookiem, umożliwiając użytkownikom łatwe zarządzanie korespondencją e-mail z praktycznie dowolnego miejsca.

Po spełnieniu wyżej wymienionych warunków wstępnych, nadszedł czas na rozpoczęcie kodowania w celu zautomatyzowania wysyłania wiadomości e-mail za pośrednictwem programu Outlook przy użyciu języka Python. Aby rozpocząć ten proces, należy włączyć bibliotekę win32com.client za pomocą instrukcji import.

 import win32com.client 

Korzystając z Pythona, możesz teraz nawiązać połączenie z platformą e-mail firmy Microsoft, Outlook.

 ol = win32com.client.Dispatch('Outlook.Application') 

Gdzie:

⭐olstores the connection reference.

Biblioteka kliencka Win32COM służy jako interfejs ułatwiający komunikację między Pythonem a Microsoft Outlookiem, umożliwiając użytkownikom wykorzystanie funkcjonalności obu platform w tandemie.

Funkcja dispatch służy do nawiązywania połączenia poprzez jej implementację.

Obiekt Outlook.Application reprezentuje aplikację używaną do nawiązania połączenia z Microsoft Outlook i służy jako podstawowy element do pracy z wiadomościami e-mail w Extensis Mailer.

/pl/images/import-win32-library.jpg

Aby Python mógł skutecznie aktualizować określony obszar wiadomości e-mail, kluczowe jest ustalenie wymiarów wspomnianej wiadomości. Pozwoli to programowi dokładnie określić, gdzie informacje powinny zostać zmodyfikowane.

 # size of the new email
olmailitem = 0x0 

Where:

Wprowadzono nową zmienną, oznaczoną jako “olmailitem”, która będzie wykorzystywana do przechowywania informacji o wymiarach.

Wymiarowość nowo utworzonej wiadomości elektronicznej w wewnętrznej przestrzeni pamięci programu Python jest abstrakcją reprezentowaną przez symbol “0x0”.

Po zdefiniowaniu parametrów wymiarowych wiadomości e-mail w Pythonie, jego funkcje automatycznie wygenerują nowy element wiadomości e-mail.

 newmail = ol.CreateItem(olmailitem) 

Gdzie:

Wprowadzono nową zmienną o nazwie “newmail”, która służy jako miejsce do przechowywania najnowszego odwołania do wiadomości e-mail.

Dostarczony kod stanowi odniesienie do wcześniej istniejącej integracji między Pythonem a Microsoft Outlookiem, umożliwiając komunikację między tymi dwiema platformami.

Instrukcja generowania wiadomości e-mail w toku jest określana jako “CreateItem(olmailitem)”, która jest wykonywana za pomocą polecenia.

Dołączenie wyraźnego tematu jest wymagane dla każdej wiadomości elektronicznej i można go określić programowo, tak aby aplikacja Python dołączała go automatycznie przed wysłaniem korespondencji do zamierzonego odbiorcy.

 newmail.Subject = 'Testing Mail' 

Gdzie:

Zmienna newmail służy jako mechanizm przechowywania odniesienia do nowo otrzymanej wiadomości e-mail.

Temat wiadomości e-mail to temat lub motyw, który służy jako główny punkt komunikacji i może być dostosowany do preferencji użytkownika.

Możesz dołączyć wyznaczonych odbiorców, umieszczając ich w polach “Do” i “DW” wiadomości e-mail, jak pokazano poniżej:

 newmail.To = '[email protected]'
newmail.CC = '[email protected]' 

Gdzie:

⭐Do: Adres e-mail głównego odbiorcy.

⭐CC: Skopiowani odbiorcy wiadomości e-mail.

W podobny sposób można dołączyć pole ślepej kopii (BCC), wykorzystując kolejną deklarację dołączoną do instrukcji cc podczas wysyłania korespondencji anonimowo do wszystkich zamierzonych odbiorców.

 newmail.BCC = '[email protected]' 

Zdolność Pythona do interakcji z Microsoft Outlook pozwala na płynną integrację jego funkcjonalności podczas korzystania z języka skryptowego.Oznacza to, że nawet w przypadku korzystania z Pythona do obsługi komunikacji e-mail, wysyłanie wiadomości do wielu odbiorców pozostaje możliwe poprzez proste dodanie średników jako separatorów w polach “Do”, “DW” lub “UDW”.

Po określeniu zamierzonego odbiorcy (odbiorców) i tematu korespondencji, możesz przystąpić do komponowania treści wiadomości w treści nowo utworzonego elementu wiadomości e-mail, który zostanie następnie przesłany do wyznaczonych odbiorców za pośrednictwem wspomnianych wcześniej pól “Do” i “DW”.

 newmail.Body= 'Hello, this is a test email to showcase how to send emails from Python and Outlook.' 

Aby dołączyć dodatkowe pliki do wiadomości elektronicznej, należy skorzystać z poniższych instrukcji:

 attach = 'C:\\Users\\admin\\Desktop\\Python\\Sample.xlsx'
newmail.Attachments.Add(attach) 

Wiadomość e-mail jest przygotowana do wysłania i przedstawia dwie dostępne alternatywy. Można zdecydować się na wcześniejsze przejrzenie wiadomości przed przesłaniem jej do zamierzonych odbiorców, stosując polecenie “Wyświetl” w sposób opisany poniżej:

 newmail.Display() 

Alternatywnie, dla tych, którzy wolą nie przeglądać wiadomości e-mail przed wysłaniem i zdecydować się na natychmiastową wysyłkę, można zastąpić polecenieDisplay()poleceniemSend().

 newmail.Send() 

Wysyłanie wiadomości e-mail za pomocą funkcji Send() może być nieco trudne, ponieważ nie zapewnia ona wstępnego podglądu treści wiadomości. Podczas korzystania z tej funkcji należy zachować ostrożność, szczególnie w przypadku osób, które często modyfikują treść wiadomości e-mail.

Oto kompletny kod:

 import win32com.client
ol=win32com.client.Dispatch("outlook.application")
olmailitem=0x0 #size of the new email
newmail=ol.CreateItem(olmailitem)
newmail.Subject= 'Testing Mail'
newmail.To='[email protected]'
newmail.CC='[email protected]'
newmail.Body= 'Hello, this is a test email.'

# attach='C:\\Users\\admin\\Desktop\\Python\\Sample.xlsx'
# newmail.Attachments.Add(attach)

# To display the mail before sending it
# newmail.Display()

 newmail.Send() 

/pl/images/test-email-in-outlook.jpg

Po pomyślnym wykonaniu kodu powinna nastąpić automatyczna transmisja wiadomości e-mail. Jeśli podczas procesu wysyłania wiadomości e-mail wystąpią jakiekolwiek problemy, może to być spowodowane problemem z konfiguracją w programie Outlook. Aby rozpocząć rozwiązywanie tej kwestii, należy rozważyć zbadanie i zajęcie się typowymi trudnościami programu Outlook, o których wiadomo, że powodują takie komplikacje.

Korzyści z automatyzacji wiadomości e-mail w Pythonie

Wykorzystanie Pythona do automatyzacji wiadomości e-mail eliminuje potrzebę otwierania programu Microsoft Outlook za każdym razem, gdy chcesz skomponować wiadomość. Dla tych, którzy często używają Pythona w swojej codziennej rutynie, ale uważają, że czynność ciągłego uzyskiwania dostępu do klienta poczty e-mail jest nużąca, to podejście stanowi wygodną alternatywę.

Zamiast inwestować dużą ilość czasu w wykonywanie powtarzających się obowiązków, można efektywnie wykorzystać Pythona do tworzenia zautomatyzowanej korespondencji e-mail za pomocą minimalnej liczby linii kodu.