W różnych przypadkach dostęp do serwerów poczty e-mail uzyskuje się z poziomu aplikacji Python w celu odczytywania wiadomości e-mail lub wdrażania klientów poczty e-mail. Do pobierania wiadomości e-mail z serwera pocztowego powszechnie używany jest protokół Internet Message Access Protocol (IMAP). W tym artykule pokażemy, jak czytać e-maile przez IMAP w Python. Artykuł wyraźnie omówi sposób łączenia się z serwerem poczty e-mail, uzyskiwania dostępu do żądanego folderu i czytania wiadomości e-mail.
- Biblioteka Python do odczytu wiadomości e-mail przy użyciu protokołu IMAP
- Połącz się z serwerem IMAP w Python
- Uzyskaj dostęp do folderów e-mail ze skrzynki pocztowej
- Czytaj e-maile z folderu w Python
Biblioteka Python do czytania wiadomości e-mail przez IMAP — bezpłatne pobieranie
Aby czytać e-maile z serwera pocztowego przez IMAP, użyjemy Aspose.Email for Python via .NET. Jest to potężna biblioteka poczty e-mail, która umożliwia wysyłanie wiadomości e-mail i uzyskiwanie dostępu do skrzynek pocztowych z serwerów pocztowych. Możesz zainstalować bibliotekę z PyPI za pomocą następującego polecenia.
pip install Aspose.Email-for-Python-via-NET
W przypadku instalacji ręcznej przy użyciu pliku .whl można wykonać poniższe czynności.
- Pobierz instalowalny plik .whl z sekcji pliki do pobrania.
- Z wiersza poleceń użyj polecenia: pip install «FileName> >.whl, aby zainstalować bibliotekę.
Połącz się z serwerem e-mail przez IMAP w Python
Poniżej przedstawiono kroki, aby połączyć się z serwerem poczty e-mail za pomocą protokołu IMAP.
- Utwórz instancję klasy ImapClient i zainicjuj ją za pomocą nazwy hosta, portu, nazwy użytkownika i hasła.
- Użyj obiektu ImapClient, aby uzyskać dostęp do skrzynki pocztowej.
Poniższy przykładowy kod pokazuje, jak połączyć się z serwerem poczty e-mail przy użyciu protokołu IMAP w języku Python.
from aspose.email import SecurityOptions, ImapClient
# utwórz instancję ImapClient i podaj hosta, port, nazwę użytkownika i hasło
client = ImapClient("imap.domain.com", 993, "user@domain.com", "password")
# ustaw opcje bezpieczeństwa
client.security_options = SecurityOptions.SSLIMPLICIT
# użyj obiektu ImapClient, aby uzyskać dostęp do skrzynki pocztowej
Python: Uzyskaj dostęp do folderów e-mail w skrzynce pocztowej
Po nawiązaniu połączenia z serwerem e-mail możesz wybrać folder, z którego chcesz czytać wiadomości e-mail. Najpierw sprawdźmy, jak uzyskać listę wszystkich folderów w skrzynce pocztowej. Poniżej przedstawiono kroki, aby uzyskać informacje o każdym folderze.
- Utwórz instancję klasy ImapClient i zainicjuj ją za pomocą nazwy hosta, portu, nazwy użytkownika i hasła.
- Użyj metody ImapClient.listfolders(), aby pobrać kolekcję folderów w obiekcie.
- Przejrzyj kolekcję i odzyskaj szczegóły folderów.
Poniższy przykładowy kod pokazuje, jak wydrukować szczegóły folderów w skrzynce pocztowej.
from aspose.email import ImapClient
# utwórz instancję ImapClient i podaj hosta, port, nazwę użytkownika i hasło
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# uzyskać listę folderów
folderInfoColl = client.list_folders()
# przeglądaj kolekcję, aby uzyskać informacje o folderach jeden po drugim
for folderInfo in folderInfoColl:
print("Folder name is " + folderInfo.name)
folderExtInfo = client.get_folder_info(folderInfo.name)
print("New message count: " + str(folderExtInfo.new_message_count))
print("Is it readonly? " + str(folderExtInfo.read_only))
print("Total number of messages " + str(folderExtInfo.total_message_count))
Przejdźmy teraz do uzyskania dostępu do określonego folderu w skrzynce pocztowej za pomocą protokołu IMAP.
- Utwórz instancję klasy ImapClient i zainicjuj ją za pomocą nazwy hosta, portu, nazwy użytkownika i hasła.
- Użyj metody ImapClient.selectfolder(string), aby wybrać folder.
Poniższy przykładowy kod pokazuje, jak wybrać folder poczty e-mail ze skrzynki pocztowej.
from aspose.email import ImapClient
# utwórz instancję ImapClient i podaj hosta, port, nazwę użytkownika i hasło
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# wybierz folder ze skrzynki pocztowej
client.select_folder("Inbox")
Czytaj e-maile z folderu w Python
Poniżej przedstawiono kroki, aby odczytać wiadomości e-mail z określonego folderu w skrzynce pocztowej za pomocą języka Python.
- Utwórz instancję klasy ImapClient i zainicjuj ją za pomocą nazwy hosta, portu, nazwy użytkownika i hasła.
- Użyj metody ImapClient.selectfolder(string), aby wybrać folder.
- Pobierz listę wiadomości w folderze za pomocą metody client.listmessages().
- Przejrzyj kolekcję wiadomości.
- Uzyskaj szczegółowe informacje o każdej wiadomości e-mail iw razie potrzeby zapisz ją na dysku.
Poniższy przykładowy kod pokazuje, jak odczytywać wiadomości e-mail z serwera poczty e-mail w języku Python.
from aspose.email import ImapClient
# utwórz instancję ImapClient i podaj hosta, port, nazwę użytkownika i hasło
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# Wybierz katalog
client.select_folder("Inbox")
# przeczytaj każdą wiadomość w kolekcji
for msg in client.list_messages():
print( "From: '{}', MIME Id: {}".format(msg.from_address, msg.message_id) )
# zapisz wiadomość na dysku
client.save_message(msg.unique_id, msg.unique_id + "_out.eml")
Biblioteka Python do czytania e-maili przez IMAP — Uzyskaj bezpłatną licencję
Możesz czytać e-maile przez IMAP za pomocą Aspose.Email for Python za darmo, uzyskując tymczasową licencję.
Wniosek
W tym artykule nauczyłeś się czytać wiadomości e-mail z serwera pocztowego przy użyciu protokołu IMAP w Python. Przykładowe kody pokazały, jak połączyć się z serwerem pocztowym, uzyskać listę folderów w skrzynce pocztowej, wybrać folder i czytać wiadomości e-mail. Ponadto możesz odwiedzić dokumentację, aby dowiedzieć się więcej o Aspose.Email for Python przez .NET. Możesz także pobrać kompletny pakiet próbek kodu źródłowego z GitHub. Jeśli masz jakieś pytania lub wątpliwości, daj nam znać za pośrednictwem naszego forum.