Lập trình với Thunderbird
Đọc Tin Nhắn
Mozilla Thunderbird là một khách hàng email mã nguồn mở, đa nền tảng, được phát triển bởi Mozilla Foundation. Nó lưu trữ email trong cấu trúc tệp riêng, quản lý chỉ mục tin nhắn và thư con thông qua các định dạng tệp độc quyền. Aspose.Email có thể làm việc với cấu trúc lưu trữ thư của Thunderbird. Lớp MboxrdStorageReader cho phép các nhà phát triển đọc tin nhắn từ tệp lưu trữ thư của Mozilla Thunderbird. Bài viết này cho thấy cách đọc tin nhắn từ lưu trữ email của Thunderbird:
- Mở tệp lưu trữ của Thunderbird
- Tạo một thể hiện của lớp MboxrdStorageReader và truyền luồng trên vào hàm khởi tạo.
- Gọi read_next_message() để lấy tin nhắn đầu tiên.
- Sử dụng cùng hàm read_next_message() trong vòng lặp while để đọc tất cả các tin nhắn.
- Đóng tất cả các luồng.
Đoạn mã dưới đây cho bạn thấy cách đọc tất cả các tin nhắn từ bộ lưu trữ thư của Thunderbird.
Truy xuất các thuộc tính tin nhắn
Để đọc và truy xuất thông tin từ tệp Mbox, Aspose.Email cung cấp MboxStorageReader lớp để tạo một đối tượng đọc cho tệp Mbox và MboxLoadOptions lớp để tải tệp. Các thuộc tính sau của MboxMessageInfo lớp có thể được sử dụng để truy cập và hiển thị chi tiết tin nhắn cụ thể:
- ‘date’ - Lấy ngày của tin nhắn.
- ‘from_address’ - Lấy địa chỉ người gửi.
- ‘subject’ - Lấy tiêu đề tin nhắn.
- ’to’ - Lấy tập hợp địa chỉ chứa người nhận của tin nhắn.
- ‘cc’ - Lấy tập hợp địa chỉ chứa người nhận CC.
- ‘bcc’ - Lấy tập hợp địa chỉ chứa người nhận BCC của tin nhắn.
Mẫu mã sau đây minh họa việc sử dụng các thuộc tính này để đọc và trích xuất thông tin tin nhắn từ tệp Mbox:
import aspose.email as ae
reader = ae.storage.mbox.MboxStorageReader.create_reader(file_name, ae.storage.mbox.MboxLoadOptions())
for mbox_message_info in reader.enumerate_message_info():
print(f"Subject: {mbox_message_info.subject}")
print(f"Date: {mbox_message_info.date}")
print(f"From: {mbox_message_info.from_address}")
print(f"To: {mbox_message_info.to}")
print(f"CC: {mbox_message_info.cc}")
print(f"Bcc: {mbox_message_info.bcc}")
Trích xuất tin nhắn từ MBOX theo định danh
Để đọc tin nhắn từ tệp MBOX, Aspose.Email cung cấp phương thức ‘create_reader()’ của MboxStorageReader lớp để tạo đối tượng đọc cho tệp. Nó nhận tên tệp và MboxLoadOptions là đối số, cho phép người dùng tải tệp MBOX với các tùy chọn cụ thể nếu cần.
Để trích xuất tin nhắn, các phương pháp và thuộc tính sau được sử dụng:
- phương thức ’enumerate_message_info()’ của MboxStorageReader lớp - Lặp lại qua mỗi tin nhắn trong tệp MBOX.
- phương thức ’extract_message()" của MboxStorageReader lớp - Trích xuất mỗi tin nhắn theo Entry ID.
- thuộc tính ’entry_id’ của MboxMessageInfo lớp - Lấy định danh mục nhập.
Cuối cùng, tin nhắn được chuyển đổi sang định dạng EML bằng EmlLoadOptions.
Mẫu mã dưới đây minh họa việc sử dụng các tính năng này để đọc và trích xuất tin nhắn từ tệp MBOX:
import aspose.email as ae
reader = ae.storage.mbox.MboxStorageReader.create_reader("my.mbox", ae.storage.mbox.MboxLoadOptions())
for mbox_message_info in reader.enumerate_message_info():
eml = reader.extract_message(mbox_message_info.entry_id, ae.EmlLoadOptions())
Cấu hình các tùy chọn tải khi đọc tin nhắn từ MBOX
Với Aspose.Email EmlLoadOptions lớp, bạn có thể chỉ định các tùy chọn bổ sung khi tải MailMessage từ định dạng Eml. Ví dụ, bạn có thể đặt tùy chọn để giữ lại tệp đính kèm TNEF khi tải tệp EML với thuộc tính ‘preserve_tnef_attachments’ của EmlLoadOptions lớp.
Bạn có thể đọc email tiếp theo từ tệp mbox bằng các tùy chọn tải đã chỉ định với phương thức ‘read_next_message’ của MboxStorageReader lớp và chuyển đổi tệp sang định dạng PST bằng phương thức ‘mbox_to_pst’ của MailStorageConverter lớp .
Mẫu mã dưới đây minh họa việc sử dụng các phương thức và thuộc tính này để làm việc với tệp lưu trữ email, bao gồm đọc tin nhắn từ định dạng mbox, giữ lại tệp đính kèm TNEF, và chuyển đổi tin nhắn từ mbox sang định dạng pst:
import aspose.email as ae
reader = ae.storage.mbox.MboxrdStorageReader(fileName, ae.storage.mbox.MboxLoadOptions())
# Read messages preserving tnef attachments.
load_options = ae.EmlLoadOptions()
load_options.preserve_tnef_attachments = True
eml = reader.read_next_message(load_options)
ae.storage.MailStorageConverter.MboxMessageOptions(load_options)
# Convert messages from mbox to pst preserving tnef attachments.
pst = ae.storage.MailStorageConverter.mbox_to_pst("Input.mbox", "Output.pst")
Đặt Bộ mã Văn bản Ưu tiên khi Tải tệp Mbox để Đọc
Bạn có thể chỉ định bộ mã ký tự sẽ được sử dụng khi tải tệp MBOX. Thuộc tính ‘preferred_text_encoding’ có sẵn cho MboxLoadOptions lớp đặt một tùy chọn bổ sung và đảm bảo rằng một tin nhắn với nội dung đã mã hoá sẽ được đọc và xử lý đúng.
Đoạn mã sau đây cho thấy cách sử dụng tính năng này trong dự án:
import aspose.email as ae
load_options = ae.storage.mbox.MboxLoadOptions()
load_options.preferred_text_encoding = 'utf-8'
reader = ae.storage.mbox.MboxrdStorageReader("sample.mbox", load_options)
message = reader.read_next_message()
Chuyển đổi MBOX sang PST Giữ lại hoặc Loại bỏ Chữ ký
Để loại bỏ chữ ký khỏi tệp trong quá trình chuyển đổi, đặt thuộc tính MboxToPstConversionOptions.remove_signature thành true.
Mẫu mã sau đây cho thấy cách sử dụng thuộc tính này:
import aspose.email as ae
personalStorage = ae.storage.pst.PersonalStorage.create("target.pst", ae.storage.pst.FileFormatVersion.UNICODE)
conversion_options = ae.storage.MboxToPstConversionOptions()
conversion_options.remove_signature = True
ae.storage.MailStorageConverter.mbox_to_pst( ae.storage.mbox.MboxrdStorageReader("source.mbox", ae.storage.mbox.MboxLoadOptions()), personalStorage, "Inbox", conversion_options)
Ghi tin nhắn
Lớp MboxrdStorageWriter cung cấp khả năng ghi các tin nhắn mới vào tệp lưu trữ thư của Thunderbird. Để ghi tin nhắn:
- Mở tệp lưu trữ Thunderbird trong FileStream.
- Tạo một thể hiện của lớp MboxrdStorageWriter và truyền luồng trên vào hàm khởi tạo.
- Chuẩn bị một tin nhắn mới bằng lớp MailMessage.
- Gọi phương thức write_message() và truyền thể hiện MailMessage ở trên để thêm tin nhắn vào lưu trữ Thunderbird.
- Đóng tất cả các luồng.
Đoạn mã dưới đây cho bạn thấy cách ghi các tin nhắn vào bộ lưu trữ thư của Thunderbird.
Lấy tổng số tin nhắn từ tệp MBox
Lớp MboxrdStorageReader cung cấp khả năng đọc số lượng mục có sẵn trong tệp MBox. Điều này có thể được sử dụng để phát triển các ứng dụng hiển thị tiến độ hoạt động khi xử lý tệp như vậy.