Trong các trường hợp khác nhau, các máy chủ email được truy cập từ bên trong các ứng dụng Python để đọc email hoặc triển khai ứng dụng email. Để truy xuất email từ máy chủ email, giao thức Giao thức truy cập thư Internet(IMAP) thường được sử dụng. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách đọc email qua IMAP bằng Python. Bài viết sẽ trình bày rõ ràng cách kết nối với máy chủ email, truy cập vào thư mục mong muốn và đọc email.
- Thư viện Python để đọc email bằng IMAP
- Kết nối với Máy chủ IMAP bằng Python
- Truy cập Thư mục Email từ Hộp thư
- Đọc email từ một thư mục bằng Python
Thư viện Python để đọc email qua IMAP - Tải xuống miễn phí
Để đọc email từ máy chủ email qua IMAP, chúng tôi sẽ sử dụng Aspose.Email for Python qua .NET. Đây là một thư viện email mạnh mẽ cho phép bạn gửi email và truy cập hộp thư từ các máy chủ email. Bạn có thể cài đặt thư viện từ PyPI bằng lệnh sau.
pip install Aspose.Email-for-Python-via-NET
Để cài đặt thủ công bằng tệp .whl, bạn có thể làm theo các bước bên dưới.
- Tải xuống tệp .whl có thể cài đặt từ phần tải xuống.
- Từ dòng lệnh, sử dụng lệnh: pip install «FileName> > .whl để cài đặt thư viện.
Kết nối với Máy chủ Email qua IMAP bằng Python
Sau đây là các bước để kết nối với máy chủ email bằng IMAP.
- Tạo một thể hiện của lớp ImapClient và khởi tạo nó bằng tên máy chủ, cổng, tên người dùng và mật khẩu.
- Sử dụng đối tượng ImapClient để truy cập hộp thư.
Mẫu mã sau đây cho thấy cách kết nối với máy chủ email bằng IMAP trong Python.
from aspose.email import SecurityOptions, ImapClient
# tạo một phiên bản của ImapClient và cung cấp máy chủ, cổng, tên người dùng và mật khẩu
client = ImapClient("imap.domain.com", 993, "user@domain.com", "password")
# đặt các tùy chọn bảo mật
client.security_options = SecurityOptions.SSLIMPLICIT
# sử dụng đối tượng ImapClient để truy cập hộp thư
Python: Truy cập Thư mục Email trong Hộp thư
Khi bạn đã thiết lập kết nối với máy chủ email, bạn có thể chọn thư mục mà bạn muốn đọc email. Đầu tiên chúng ta hãy kiểm tra cách lấy danh sách tất cả các thư mục trong hộp thư. Sau đây là các bước để lấy thông tin về từng thư mục.
- Tạo một thể hiện của lớp ImapClient và khởi tạo nó bằng tên máy chủ, cổng, tên người dùng và mật khẩu.
- Sử dụng phương thức ImapClient.listfolders() để lấy bộ sưu tập thư mục trong một đối tượng.
- Lặp lại các chi tiết của bộ sưu tập và truy xuất các thư mục.
Mẫu mã sau đây cho thấy cách in chi tiết của các thư mục trong hộp thư.
from aspose.email import ImapClient
# tạo một phiên bản của ImapClient và cung cấp máy chủ, cổng, tên người dùng và mật khẩu
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# lấy danh sách các thư mục
folderInfoColl = client.list_folders()
# lặp qua bộ sưu tập để nhận thông tin từng thư mục một
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))
Bây giờ chúng ta hãy tiến hành truy cập một thư mục cụ thể trong hộp thư bằng IMAP.
- Tạo một thể hiện của lớp ImapClient và khởi tạo nó bằng tên máy chủ, cổng, tên người dùng và mật khẩu.
- Sử dụng phương thức ImapClient.selectfolder (string) để chọn thư mục.
Mẫu mã sau đây cho biết cách chọn một thư mục email từ hộp thư.
from aspose.email import ImapClient
# tạo một phiên bản của ImapClient và cung cấp máy chủ, cổng, tên người dùng và mật khẩu
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# chọn thư mục từ hộp thư
client.select_folder("Inbox")
Đọc email từ một thư mục bằng Python
Sau đây là các bước để đọc thư email từ một thư mục cụ thể trong hộp thư bằng Python.
- Tạo một thể hiện của lớp ImapClient và khởi tạo nó bằng tên máy chủ, cổng, tên người dùng và mật khẩu.
- Sử dụng phương thức ImapClient.selectfolder (string) để chọn thư mục.
- Nhận danh sách thư trong thư mục bằng phương thức client.listmessages().
- Lặp qua bộ sưu tập các tin nhắn.
- Nhận thông tin chi tiết của từng email và lưu vào đĩa nếu cần.
Mẫu mã sau đây cho thấy cách đọc email từ máy chủ email bằng Python.
from aspose.email import ImapClient
# tạo một phiên bản của ImapClient và cung cấp máy chủ, cổng, tên người dùng và mật khẩu
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# chọn thư mục
client.select_folder("Inbox")
# đọc từng tin nhắn trong bộ sưu tập
for msg in client.list_messages():
print( "From: '{}', MIME Id: {}".format(msg.from_address, msg.message_id) )
# lưu tin nhắn trên đĩa
client.save_message(msg.unique_id, msg.unique_id + "_out.eml")
Thư viện Python để đọc email qua IMAP - Nhận giấy phép miễn phí
Bạn có thể đọc email qua IMAP bằng Aspose.Email for Python miễn phí bằng cách nhận giấy phép tạm thời.
Sự kết luận
Trong bài viết này, bạn đã học cách đọc email từ máy chủ email bằng IMAP trong Python. Các mẫu mã đã chứng minh cách kết nối với máy chủ email, lấy danh sách các thư mục trong hộp thư, chọn một thư mục và đọc email. Ngoài ra, bạn có thể truy cập tài liệu để khám phá thêm về Aspose.Email for Python qua .NET. Ngoài ra, bạn có thể tải xuống gói mẫu mã nguồn hoàn chỉnh từ GitHub. Trong trường hợp bạn có bất kỳ câu hỏi hoặc thắc mắc nào, vui lòng cho chúng tôi biết qua diễn đàn của chúng tôi.