Python O365 get_messages

Mô-đun này định nghĩa hai lớp và , để truy cập và thao tác với hộp thư trên đĩa và thư chứa trong đó. cung cấp ánh xạ giống như từ điển từ khóa đến tin nhắn. mở rộng lớp của mô-đun với trạng thái và hành vi cụ thể theo định dạng. Các định dạng hộp thư được hỗ trợ là Maildir, mbox, MH, Babyl và MMDF

Xem thêm

mô-đun

Đại diện và thao tác tin nhắn

các đối tượng

lớp hộp thư. Hộp thư

Một hộp thư, có thể được kiểm tra và sửa đổi

Lớp định nghĩa một giao diện và không có ý định khởi tạo. Thay vào đó, các lớp con dành riêng cho định dạng sẽ kế thừa từ đó và mã của bạn sẽ khởi tạo một lớp con cụ thể

Giao diện dạng từ điển, có các phím nhỏ tương ứng với tin nhắn. Các khóa được cấp bởi phiên bản mà chúng sẽ được sử dụng và chỉ có ý nghĩa đối với phiên bản đó. Một khóa tiếp tục xác định một thông báo ngay cả khi thông báo tương ứng bị sửa đổi, chẳng hạn như bằng cách thay thế nó bằng một thông báo khác

Các thông báo có thể được thêm vào một thể hiện bằng cách sử dụng phương thức giống như tập hợp và bị xóa bằng cách sử dụng câu lệnh

import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
0 hoặc các phương thức giống như tập hợp và

ngữ nghĩa giao diện khác với ngữ nghĩa từ điển theo một số cách đáng chú ý. Mỗi khi một tin nhắn được yêu cầu, một đại diện mới [thường là một phiên bản] được tạo dựa trên trạng thái hiện tại của hộp thư. Tương tự, khi một thông báo được thêm vào một phiên bản, nội dung của thông báo được cung cấp sẽ được sao chép. Trong cả hai trường hợp, không phải là một tham chiếu đến biểu diễn thông báo được lưu giữ bởi thể hiện

Trình lặp mặc định lặp qua các biểu diễn thông báo, không phải các khóa như trình lặp từ điển mặc định thực hiện. Hơn nữa, việc sửa đổi hộp thư trong quá trình lặp lại là an toàn và được xác định rõ ràng. Thư được thêm vào hộp thư sau khi trình lặp được tạo sẽ không được trình lặp nhìn thấy. Các thư bị xóa khỏi hộp thư trước khi trình lặp tạo ra chúng sẽ bị bỏ qua một cách âm thầm, mặc dù việc sử dụng khóa từ trình lặp có thể dẫn đến ngoại lệ nếu thư tương ứng sau đó bị xóa

Cảnh báo

Hãy hết sức thận trọng khi sửa đổi các hộp thư có thể bị thay đổi đồng thời bởi một số quy trình khác. Định dạng hộp thư an toàn nhất để sử dụng cho các tác vụ đó là Maildir; . Nếu bạn đang sửa đổi hộp thư, bạn phải khóa nó bằng cách gọi phương thức và trước khi đọc bất kỳ thư nào trong tệp hoặc thực hiện bất kỳ thay đổi nào bằng cách thêm hoặc xóa thư. Không khóa hộp thư có nguy cơ mất thư hoặc hỏng toàn bộ hộp thư

trường hợp có các phương pháp sau

thêm[thông báo]

Thêm tin nhắn vào hộp thư và trả lại khóa đã được gán cho nó

Thông báo tham số có thể là một thể hiện, một thể hiện, một chuỗi, một chuỗi byte hoặc một đối tượng giống như tệp [sẽ được mở ở chế độ nhị phân]. Nếu thông báo là một thể hiện của lớp con định dạng cụ thể thích hợp [e. g. , nếu đó là một phiên bản và đây là một phiên bản], thông tin định dạng cụ thể của nó được sử dụng. Mặt khác, mặc định hợp lý cho thông tin định dạng cụ thể được sử dụng

Đã thay đổi trong phiên bản 3. 2. Đã thêm hỗ trợ cho đầu vào nhị phân.

xóa[phím]__delitem__[key]discard[key]

Xóa tin nhắn tương ứng với khóa khỏi hộp thư

Nếu không có thông báo như vậy tồn tại, một ngoại lệ sẽ được đưa ra nếu phương thức được gọi là hoặc nhưng không có ngoại lệ nào được đưa ra nếu phương thức được gọi là. Hành vi của có thể được ưu tiên nếu định dạng hộp thư cơ bản hỗ trợ sửa đổi đồng thời bởi các quy trình khác

__setitem__[phím , tin nhắn]

Thay thế tin nhắn tương ứng với khóa bằng tin nhắn. Đưa ra một ngoại lệ nếu không có thông báo nào tương ứng với khóa

Như với , thông báo tham số có thể là một thể hiện, một thể hiện, một chuỗi, một chuỗi byte hoặc một đối tượng giống như tệp [sẽ được mở ở chế độ nhị phân]. Nếu thông báo là một thể hiện của lớp con định dạng cụ thể thích hợp [e. g. , nếu đó là một phiên bản và đây là một phiên bản], thông tin định dạng cụ thể của nó được sử dụng. Mặt khác, thông tin về định dạng cụ thể của thông báo hiện tương ứng với khóa sẽ không thay đổi

iterkeys[]keys[]

Trả về một trình vòng lặp trên tất cả các khóa nếu được gọi là hoặc trả về danh sách các khóa nếu được gọi là

itervalues[]__iter__[]values[]

Trả về một trình lặp qua các biểu diễn của tất cả các thông báo nếu được gọi là hoặc hoặc trả về danh sách các biểu diễn đó nếu được gọi là. Các thông báo được biểu diễn dưới dạng các phiên bản của lớp con có định dạng cụ thể phù hợp trừ khi một nhà máy thông báo tùy chỉnh được chỉ định khi phiên bản được khởi tạo

Ghi chú

Hành vi của không giống như hành vi của từ điển, nó lặp qua các khóa

iteritems[]item[]

Trả về một trình vòng lặp qua các cặp [khóa, thông báo], trong đó khóa là khóa và thông báo là biểu diễn thông báo, nếu được gọi là hoặc trả về danh sách các cặp như vậy nếu được gọi là. Các thông báo được biểu diễn dưới dạng các phiên bản của lớp con có định dạng cụ thể phù hợp trừ khi một nhà máy thông báo tùy chỉnh được chỉ định khi phiên bản được khởi tạo

lấy[khóa , mặc định=None]__getitem__[key]

Trả về một đại diện của tin nhắn tương ứng với khóa. Nếu không có thông báo như vậy tồn tại, mặc định được trả về nếu phương thức được gọi là và một ngoại lệ được đưa ra nếu phương thức được gọi là. Thông báo được biểu diễn dưới dạng một phiên bản của lớp con có định dạng cụ thể phù hợp trừ khi một nhà máy thông báo tùy chỉnh được chỉ định khi phiên bản được khởi tạo

get_message[key]

Trả về một biểu diễn của thông báo tương ứng với khóa dưới dạng một thể hiện của lớp con có định dạng cụ thể phù hợp hoặc đưa ra một ngoại lệ nếu không có thông báo nào như vậy tồn tại

get_byte[khóa]

Trả về một biểu diễn byte của thông báo tương ứng với khóa hoặc đưa ra một ngoại lệ nếu không có thông báo nào như vậy tồn tại

Mới trong phiên bản 3. 2

get_string[key]

Trả về một chuỗi đại diện của thông báo tương ứng với khóa hoặc đưa ra một ngoại lệ nếu không có thông báo nào như vậy tồn tại. Tin nhắn được xử lý thông qua để chuyển đổi nó thành biểu diễn sạch 7 bit

get_file[key]

Trả về một biểu diễn giống như tệp của thông báo tương ứng với khóa hoặc đưa ra một ngoại lệ nếu không có thông báo nào như vậy tồn tại. Đối tượng giống như tệp hoạt động như thể đang mở ở chế độ nhị phân. Tập tin này nên được đóng lại khi nó không còn cần thiết

Đã thay đổi trong phiên bản 3. 2. Đối tượng tệp thực sự là một tệp nhị phân; . Ngoài ra, đối tượng giống như tệp hiện hỗ trợ giao thức quản lý bối cảnh. bạn có thể sử dụng một câu lệnh để tự động đóng nó.

Ghi chú

Không giống như các biểu diễn thư khác, các biểu diễn giống như tệp không nhất thiết độc lập với phiên bản đã tạo ra chúng hoặc hộp thư bên dưới. Tài liệu cụ thể hơn được cung cấp bởi mỗi lớp con

__contains__[key]

Trả lại

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
74 nếu khóa tương ứng với một tin nhắn, ngược lại là
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
75

__len__[]

Trả về số lượng thư trong hộp thư

xóa[]

Xóa tất cả thư khỏi hộp thư

pop[phím , mặc định=None]

Trả về một đại diện của tin nhắn tương ứng với khóa và xóa tin nhắn. Nếu không có thông báo như vậy tồn tại, trả về mặc định. Thông báo được biểu diễn dưới dạng một phiên bản của lớp con có định dạng cụ thể phù hợp trừ khi một nhà máy thông báo tùy chỉnh được chỉ định khi phiên bản được khởi tạo

popitem[]

Trả về một cặp [khóa, tin nhắn] tùy ý, trong đó khóa là khóa và tin nhắn là biểu diễn tin nhắn và xóa tin nhắn tương ứng. Nếu hộp thư trống, hãy đưa ra một ngoại lệ. Thông báo được biểu diễn dưới dạng một phiên bản của lớp con có định dạng cụ thể phù hợp trừ khi một nhà máy thông báo tùy chỉnh được chỉ định khi phiên bản được khởi tạo

cập nhật[arg]

Tham số arg phải là ánh xạ từ khóa đến tin nhắn hoặc có thể lặp lại các cặp [khóa, tin nhắn]. Cập nhật hộp thư để đối với mỗi khóa và tin nhắn đã cho, tin nhắn tương ứng với khóa được đặt thành tin nhắn như thể bằng cách sử dụng. Như với , mỗi khóa phải tương ứng với một thư trong hộp thư, nếu không, một ngoại lệ sẽ được đưa ra, do đó, nói chung, việc arg là một ví dụ là không chính xác

Ghi chú

Không giống như từ điển, đối số từ khóa không được hỗ trợ

xả[]

Viết mọi thay đổi đang chờ xử lý vào hệ thống tập tin. Đối với một số lớp con, các thay đổi luôn được viết ngay lập tức và không làm gì cả, nhưng bạn vẫn nên tạo thói quen gọi phương thức này

khóa[]

Có được khóa tư vấn độc quyền trên hộp thư để các quy trình khác biết không sửa đổi nó. An được nâng lên nếu khóa không khả dụng. Các cơ chế khóa cụ thể được sử dụng phụ thuộc vào định dạng hộp thư. Bạn phải luôn khóa hộp thư trước khi thực hiện bất kỳ sửa đổi nào đối với nội dung của hộp thư

mở khóa[]

Mở khóa trên hộp thư, nếu có

đóng[]

Xóa hộp thư, mở khóa nếu cần và đóng mọi tệp đang mở. Đối với một số lớp con, phương pháp này không làm gì cả

lớp hộp thư. Maildir[tên thư mục , nhà máy=None, create=True]

Lớp con của hộp thư ở định dạng Maildir. Nhà máy tham số là một đối tượng có thể gọi được, chấp nhận biểu diễn thông báo giống như tệp [hoạt động như thể được mở ở chế độ nhị phân] và trả về biểu diễn tùy chỉnh. Nếu nhà máy là

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
91, được sử dụng làm đại diện thông báo mặc định. Nếu tạo là
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
74, hộp thư được tạo nếu nó không tồn tại

Nếu tạo là

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
74 và đường dẫn dirname tồn tại, nó sẽ được coi là một maildir hiện có mà không cần xác minh bố cục thư mục của nó

Vì lý do lịch sử mà dirname được đặt tên như vậy chứ không phải là đường dẫn

Maildir là định dạng hộp thư dựa trên thư mục được phát minh cho tác nhân chuyển thư qmail và hiện được hỗ trợ rộng rãi bởi các chương trình khác. Thư trong hộp thư Maildir được lưu trữ trong các tệp riêng biệt trong cấu trúc thư mục chung. Thiết kế này cho phép các hộp thư Maildir được truy cập và sửa đổi bởi nhiều chương trình không liên quan mà không làm hỏng dữ liệu, do đó không cần khóa tệp

Hộp thư Maildir chứa ba thư mục con, cụ thể là.

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
95,
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
96 và
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
97. Tin nhắn được tạo tạm thời trong thư mục con ________ 595 và sau đó được chuyển đến thư mục con ________ 596 để hoàn tất quá trình gửi. Tác nhân người dùng thư sau đó có thể di chuyển thư đến thư mục con
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
97 và lưu trữ thông tin về trạng thái của thư trong phần "thông tin" đặc biệt được thêm vào tên tệp của nó

Các thư mục theo phong cách được giới thiệu bởi tác nhân chuyển thư Courier cũng được hỗ trợ. Bất kỳ thư mục con nào của hộp thư chính được coi là một thư mục nếu

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
01 là ký tự đầu tiên trong tên của nó. Tên thư mục được đại diện bởi không có đầu
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
01. Bản thân mỗi thư mục là một hộp thư Maildir nhưng không được chứa các thư mục khác. Thay vào đó, một tổ hợp logic được biểu thị bằng cách sử dụng
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
01 để phân định các mức, e. g. , “Đã lưu trữ. 2005. 07”

Ghi chú

Đặc tả Maildir yêu cầu sử dụng dấu hai chấm [

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
05] trong một số tên tệp thư nhất định. Tuy nhiên, một số hệ điều hành không cho phép ký tự này trong tên tệp. Nếu bạn muốn sử dụng định dạng giống như Maildir trên một hệ điều hành như vậy, bạn nên chỉ định một ký tự khác để sử dụng thay thế. Dấu chấm than [
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
06] là một lựa chọn phổ biến. Ví dụ

import mailbox
mailbox.Maildir.colon = '!'

Thuộc tính

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
07 cũng có thể được đặt trên cơ sở từng trường hợp

các trường hợp có tất cả các phương thức ngoài các phương thức sau

list_folders[]

Trả về danh sách tên của tất cả các thư mục

get_folder[thư mục]

Trả về một thể hiện đại diện cho thư mục có tên là thư mục. Một ngoại lệ được đưa ra nếu thư mục không tồn tại

add_folder[thư mục]

Tạo một thư mục có tên là thư mục và trả về một thể hiện đại diện cho nó

remove_folder[thư mục]

Xóa thư mục có tên là thư mục. Nếu thư mục chứa bất kỳ thư nào, một ngoại lệ sẽ được đưa ra và thư mục sẽ không bị xóa

sạch[]

Xóa các tệp tạm thời khỏi hộp thư không được truy cập trong 36 giờ qua. Thông số kỹ thuật của Maildir nói rằng thỉnh thoảng các chương trình đọc thư sẽ thực hiện việc này

Một số phương pháp được thực hiện bởi xứng đáng nhận xét đặc biệt

add[tin nhắn]__setitem__[key, message]update[arg]

Cảnh báo

Các phương thức này tạo tên tệp duy nhất dựa trên ID quy trình hiện tại. Khi sử dụng nhiều luồng, xung đột tên không bị phát hiện có thể xảy ra và gây hỏng hộp thư trừ khi các luồng được phối hợp để tránh sử dụng các phương pháp này để thao tác đồng thời cùng một hộp thư

xả[]

Tất cả các thay đổi đối với hộp thư Maildir được áp dụng ngay lập tức, vì vậy phương pháp này không làm gì cả

khóa[]mở khóa[]

Hộp thư Maildir không hỗ trợ [hoặc yêu cầu] khóa, vì vậy các phương pháp này không làm gì cả

đóng[]

các phiên bản không giữ bất kỳ tệp đang mở nào và các hộp thư bên dưới không hỗ trợ khóa, vì vậy phương pháp này không thực hiện được gì

get_file[key]

Tùy thuộc vào nền tảng máy chủ lưu trữ, có thể không sửa đổi hoặc xóa thông báo cơ bản trong khi tệp được trả về vẫn mở

Xem thêm

trang man maildir từ Courier

Một đặc điểm kỹ thuật của định dạng. Mô tả một phần mở rộng phổ biến cho các thư mục hỗ trợ

Sử dụng định dạng maildir

Ghi chú về Maildir của người phát minh ra nó. Bao gồm sơ đồ tạo tên được cập nhật và chi tiết về ngữ nghĩa “thông tin”

lớp hộp thư. mbox[đường dẫn , nhà máy=None, create=True]

Lớp con của hộp thư ở định dạng mbox. Nhà máy tham số là một đối tượng có thể gọi được, chấp nhận biểu diễn thông báo giống như tệp [hoạt động như thể được mở ở chế độ nhị phân] và trả về biểu diễn tùy chỉnh. Nếu nhà máy là

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
91, được sử dụng làm đại diện thông báo mặc định. Nếu tạo là
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
74, hộp thư được tạo nếu nó không tồn tại

Định dạng mbox là định dạng cổ điển để lưu trữ thư trên hệ thống Unix. Tất cả các tin nhắn trong hộp thư mbox được lưu trữ trong một tệp duy nhất với phần đầu của mỗi tin nhắn được biểu thị bằng một dòng có năm ký tự đầu tiên là “Từ“

Một số biến thể của định dạng mbox tồn tại để giải quyết những thiếu sót được nhận thấy trong bản gốc. Vì lợi ích của tính tương thích, hãy triển khai định dạng ban đầu, đôi khi được gọi là mboxo. Điều này có nghĩa là tiêu đề Độ dài nội dung, nếu có, sẽ bị bỏ qua và bất kỳ lần xuất hiện nào của “Từ” ở đầu dòng trong nội dung thư đều được chuyển thành “>Từ” khi lưu trữ thư, mặc dù các lần xuất hiện của “>Từ

Một số phương pháp được thực hiện bởi xứng đáng nhận xét đặc biệt

get_file[key]

Sử dụng tệp sau khi gọi

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
06 hoặc
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
26 trên phiên bản có thể mang lại kết quả không thể đoán trước hoặc phát sinh ngoại lệ

khóa[]mở khóa[]

Ba cơ chế khóa được sử dụng—chốt khóa và, nếu có, các cuộc gọi hệ thống

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
28 và
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
29

Xem thêm

trang man mbox từ tin

Một đặc điểm kỹ thuật của định dạng, với các chi tiết về khóa

Cấu hình Netscape Mail trên Unix. Tại sao định dạng độ dài nội dung không tốt

Một đối số để sử dụng định dạng mbox ban đầu thay vì một biến thể

“mbox” là một họ gồm một số định dạng hộp thư không tương thích lẫn nhau

Lịch sử của các biến thể mbox

lớp hộp thư. MH[đường dẫn , nhà máy=None, create=True]

Lớp con của hộp thư ở định dạng MH. Nhà máy tham số là một đối tượng có thể gọi được, chấp nhận biểu diễn thông báo giống như tệp [hoạt động như thể được mở ở chế độ nhị phân] và trả về biểu diễn tùy chỉnh. Nếu nhà máy là

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
91, được sử dụng làm đại diện thông báo mặc định. Nếu tạo là
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
74, hộp thư được tạo nếu nó không tồn tại

MH là định dạng hộp thư dựa trên thư mục được phát minh cho Hệ thống xử lý thư MH, một tác nhân người dùng thư. Mỗi thư trong hộp thư MH nằm trong tệp riêng của nó. Hộp thư MH có thể chứa các hộp thư MH khác [được gọi là thư mục] ngoài thư. Các thư mục có thể được lồng vào nhau vô thời hạn. Hộp thư MH cũng hỗ trợ các chuỗi, được đặt tên theo danh sách được sử dụng để nhóm các thư một cách hợp lý mà không cần di chuyển chúng vào các thư mục con. Trình tự được xác định trong một tệp có tên là

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
35 trong mỗi thư mục

Lớp điều khiển hộp thư của MH, nhưng nó không cố gắng mô phỏng tất cả các hành vi của mh. Đặc biệt nó không chỉnh sửa và không bị ảnh hưởng bởi các file

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
37 hay
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
38 mà mh dùng để lưu trữ trạng thái và cấu hình của nó

các trường hợp có tất cả các phương thức ngoài các phương thức sau

list_folders[]

Trả về danh sách tên của tất cả các thư mục

get_folder[thư mục]

Trả về một thể hiện đại diện cho thư mục có tên là thư mục. Một ngoại lệ được đưa ra nếu thư mục không tồn tại

add_folder[thư mục]

Tạo một thư mục có tên là thư mục và trả về một thể hiện đại diện cho nó

remove_folder[thư mục]

Xóa thư mục có tên là thư mục. Nếu thư mục chứa bất kỳ thư nào, một ngoại lệ sẽ được đưa ra và thư mục sẽ không bị xóa

get_sequences[]

Trả về từ điển các tên dãy được ánh xạ tới danh sách khóa. Nếu không có chuỗi nào, từ điển trống sẽ được trả về

set_sequences[sequences]

Xác định lại các trình tự tồn tại trong hộp thư dựa trên các trình tự, một từ điển tên được ánh xạ tới các danh sách chính, như được trả về bởi

gói[]

Đổi tên thư trong hộp thư khi cần thiết để loại bỏ các khoảng trống trong việc đánh số. Các mục trong danh sách trình tự được cập nhật tương ứng

Ghi chú

Các khóa đã cấp sẽ bị vô hiệu bởi thao tác này và không được sử dụng sau đó

Một số phương pháp được thực hiện bởi xứng đáng nhận xét đặc biệt

xóa[phím]__delitem__[key]discard[key]

Các phương pháp này ngay lập tức xóa tin nhắn. Quy ước MH đánh dấu một thông báo để xóa bằng cách thêm dấu phẩy vào tên của nó không được sử dụng

khóa[]mở khóa[]

Ba cơ chế khóa được sử dụng—chốt khóa và, nếu có, các cuộc gọi hệ thống

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
28 và
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
29. Đối với hộp thư MH, khóa hộp thư có nghĩa là khóa tệp
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
35 và, chỉ trong khoảng thời gian của bất kỳ hoạt động nào ảnh hưởng đến chúng, khóa các tệp thư riêng lẻ

get_file[key]

Tùy thuộc vào nền tảng máy chủ, có thể không xóa được thông báo cơ bản trong khi tệp được trả về vẫn mở

xả[]

Tất cả các thay đổi đối với hộp thư MH được áp dụng ngay lập tức, vì vậy phương pháp này không làm gì cả

đóng[]

các phiên bản không giữ bất kỳ tệp đang mở nào, vì vậy phương pháp này tương đương với

Xem thêm

nmh - Hệ thống xử lý tin nhắn

Trang chủ của nmh, một phiên bản cập nhật của mh gốc

MH & nmh. Email cho người dùng và lập trình viên

Sách được cấp phép GPL về mh và nmh, với một số thông tin về định dạng hộp thư

lớp hộp thư. Babyl[đường , nhà máy=None, create=True]

Lớp con của hộp thư ở định dạng Babyl. Nhà máy tham số là một đối tượng có thể gọi được, chấp nhận biểu diễn thông báo giống như tệp [hoạt động như thể được mở ở chế độ nhị phân] và trả về biểu diễn tùy chỉnh. Nếu nhà máy là

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
91, được sử dụng làm đại diện thông báo mặc định. Nếu tạo là
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
74, hộp thư được tạo nếu nó không tồn tại

Babyl là định dạng hộp thư một tệp được sử dụng bởi tác nhân người dùng thư Rmail có trong Emacs. Phần đầu của thông báo được biểu thị bằng một dòng chứa hai ký tự Control-Gạch dưới [

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
58] và Control-L [_______159]. Phần cuối của một tin nhắn được biểu thị bằng phần đầu của tin nhắn tiếp theo hoặc, trong trường hợp của tin nhắn cuối cùng, một dòng chứa ký tự Control-Gạch dưới [_______158]

Thư trong hộp thư Babyl có hai bộ tiêu đề, tiêu đề gốc và cái gọi là tiêu đề hiển thị. Các tiêu đề hiển thị thường là một tập hợp con của các tiêu đề ban đầu đã được định dạng lại hoặc rút gọn để hấp dẫn hơn. Mỗi thư trong hộp thư Babyl cũng có một danh sách nhãn đi kèm hoặc các chuỗi ngắn ghi lại thông tin bổ sung về thư và danh sách tất cả các nhãn do người dùng xác định được tìm thấy trong hộp thư được lưu trong phần tùy chọn Babyl

các trường hợp có tất cả các phương thức ngoài các phương thức sau

get_labels[]

Trả về danh sách tên của tất cả các nhãn do người dùng xác định được sử dụng trong hộp thư

Ghi chú

Thư thực tế được kiểm tra để xác định nhãn nào tồn tại trong hộp thư thay vì tham khảo danh sách nhãn trong phần tùy chọn Babyl, nhưng phần Babyl được cập nhật bất cứ khi nào hộp thư được sửa đổi

Một số phương pháp được thực hiện bởi xứng đáng nhận xét đặc biệt

get_file[key]

Trong hộp thư Babyl, các tiêu đề của thư không được lưu liền kề với phần thân của thư. Để tạo một biểu diễn giống như tệp, các tiêu đề và nội dung được sao chép cùng nhau vào một phiên bản có API giống với API của tệp. Do đó, đối tượng giống như tệp thực sự độc lập với hộp thư bên dưới nhưng không tiết kiệm bộ nhớ so với biểu diễn chuỗi

khóa[]mở khóa[]

Ba cơ chế khóa được sử dụng—chốt khóa và, nếu có, các cuộc gọi hệ thống

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
28 và
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
29

Xem thêm

Định dạng của tệp Babyl phiên bản 5

Một đặc điểm kỹ thuật của định dạng Babyl

Đọc Thư bằng Email

Hướng dẫn sử dụng Rmail, với một số thông tin về ngữ nghĩa Babyl

lớp hộp thư. MMDF[đường dẫn , nhà máy=None, create=True]

Lớp con của hộp thư ở định dạng MMDF. Nhà máy tham số là một đối tượng có thể gọi được, chấp nhận biểu diễn thông báo giống như tệp [hoạt động như thể được mở ở chế độ nhị phân] và trả về biểu diễn tùy chỉnh. Nếu nhà máy là

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
91, được sử dụng làm đại diện thông báo mặc định. Nếu tạo là
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
74, hộp thư được tạo nếu nó không tồn tại

MMDF là định dạng hộp thư một tệp được phát minh cho Cơ sở phân phối Bản ghi nhớ Đa kênh, một tác nhân chuyển thư. Mỗi tin nhắn có dạng giống như tin nhắn mbox nhưng được đặt trong ngoặc đơn trước và sau bởi các dòng chứa bốn ký tự Control-A [

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
73]. Như với định dạng mbox, phần đầu của mỗi thư được biểu thị bằng một dòng có năm ký tự đầu tiên là “Từ “, nhưng các lần xuất hiện thêm của “Từ” không được chuyển thành “>Từ” khi lưu trữ thư do các dòng phân cách thư bổ sung ngăn cản

Một số phương pháp được thực hiện bởi xứng đáng nhận xét đặc biệt

get_file[key]

Sử dụng tệp sau khi gọi

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
06 hoặc
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
26 trên phiên bản có thể mang lại kết quả không thể đoán trước hoặc phát sinh ngoại lệ

khóa[]mở khóa[]

Ba cơ chế khóa được sử dụng—chốt khóa và, nếu có, các cuộc gọi hệ thống

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
28 và
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
29

Xem thêm

trang man mmdf từ tin

Thông số kỹ thuật của định dạng MMDF từ tài liệu của tin, một người đọc tin tức

MMDF

Một bài viết Wikipedia mô tả Cơ sở phân phối Bản ghi nhớ Đa kênh

các đối tượng

lớp hộp thư. Tin nhắn[tin nhắn=Không có]

Một lớp con của mô-đun. Các lớp con thêm trạng thái và hành vi cụ thể theo định dạng hộp thư

Nếu thông báo bị bỏ qua, phiên bản mới được tạo ở trạng thái trống, mặc định. Nếu tin nhắn là một phiên bản, nội dung của nó sẽ được sao chép; . Nếu thông báo là một chuỗi, chuỗi byte hoặc tệp, thì thông báo đó phải chứa thông báo tuân thủ RFC 2822, được đọc và phân tích cú pháp. Các tệp phải được mở ở chế độ nhị phân, nhưng các tệp ở chế độ văn bản được chấp nhận để tương thích ngược

Trạng thái định dạng cụ thể và các hành vi được cung cấp bởi các lớp con khác nhau, nhưng nói chung, chỉ có các thuộc tính không dành riêng cho một hộp thư cụ thể mới được hỗ trợ [mặc dù có lẽ các thuộc tính dành riêng cho một định dạng hộp thư cụ thể]. Ví dụ: phần bù tệp cho các định dạng hộp thư một tệp và tên tệp cho các định dạng hộp thư dựa trên thư mục không được giữ lại vì chúng chỉ áp dụng cho hộp thư gốc. Nhưng trạng thái chẳng hạn như liệu một tin nhắn đã được người dùng đọc hay đánh dấu là quan trọng vẫn được giữ lại, bởi vì nó áp dụng cho chính tin nhắn đó

Không có yêu cầu rằng các phiên bản được sử dụng để thể hiện các tin nhắn được truy xuất bằng các phiên bản. Trong một số trường hợp, thời gian và bộ nhớ cần thiết để tạo biểu diễn có thể không được chấp nhận. Đối với những tình huống như vậy, các phiên bản cũng cung cấp các biểu diễn dạng chuỗi và tệp, đồng thời có thể chỉ định một nhà máy thông báo tùy chỉnh khi một phiên bản được khởi tạo

lớp hộp thư. MaildirMessage[tin nhắn=Không]

Thư có hành vi dành riêng cho Maildir. Thông báo tham số có ý nghĩa tương tự như với hàm tạo

Thông thường, ứng dụng tác nhân người dùng thư di chuyển tất cả các thư trong thư mục con

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
96 sang thư mục con
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
97 sau lần đầu tiên người dùng mở và đóng hộp thư, ghi lại rằng thư đã cũ cho dù chúng đã thực sự được đọc hay chưa. Mỗi tin nhắn trong
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
97 có phần “thông tin” được thêm vào tên tệp của nó để lưu trữ thông tin về trạng thái của nó. [Một số trình đọc thư cũng có thể thêm phần “thông tin” vào thư trong
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
96. ] Phần “thông tin” có thể có một trong hai dạng. nó có thể chứa “2”, theo sau là danh sách các cờ tiêu chuẩn hóa [e. g. , “2,FR”] hoặc nó có thể chứa “1”, theo sau là cái gọi là thông tin thử nghiệm. Các cờ tiêu chuẩn cho thư Maildir như sau

Lá cờ

Nghĩa

Giải trình

D

Bản thảo

Theo thành phần

F

gắn cờ

Đánh dấu là quan trọng

P

Đi qua

Đã chuyển tiếp, gửi lại hoặc bị trả lại

R

đã trả lời

Trả lời cho

S

Đã xem

Đọc

T

Đã chuyển vào thùng rác

Đánh dấu để xóa tiếp theo

trường hợp cung cấp các phương pháp sau

get_subdir[]

Trả về “new” [nếu thư nên được lưu trữ trong thư mục con

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
96] hoặc “cur” [nếu thư nên được lưu trữ trong thư mục con
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
97]

Ghi chú

Một tin nhắn thường được chuyển từ

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
96 sang
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
97 sau khi hộp thư của nó đã được truy cập, cho dù tin nhắn đó đã được đọc hay chưa. Một tin nhắn
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
03 đã được đọc nếu
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
04 là
import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
74

set_subdir[thư mục con]

Đặt thư mục con tin nhắn sẽ được lưu trữ trong. Thư mục con tham số phải là “new” hoặc “cur”

get_flags[]

Trả về một chuỗi chỉ định các cờ hiện được đặt. Nếu thư tuân thủ định dạng Maildir tiêu chuẩn, kết quả là sự nối theo thứ tự bảng chữ cái của số 0 hoặc một lần xuất hiện của mỗi

import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
06,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
07,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
08,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
09,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
10 và
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
11. Chuỗi trống được trả về nếu không có cờ nào được đặt hoặc nếu "thông tin" chứa ngữ nghĩa thử nghiệm

set_flags[flags]

Đặt cờ được chỉ định bởi cờ và bỏ đặt tất cả các cờ khác

add_flag[flag]

Đặt [các] cờ được chỉ định bởi cờ mà không thay đổi các cờ khác. Để thêm nhiều cờ cùng một lúc, cờ có thể là một chuỗi gồm nhiều ký tự. “Thông tin” hiện tại bị ghi đè cho dù nó có chứa thông tin thử nghiệm thay vì cờ hay không

remove_flag[flag]

Bỏ đặt [các] cờ được chỉ định bởi cờ mà không thay đổi các cờ khác. Để xóa nhiều cờ cùng một lúc, cờ có thể là một chuỗi gồm nhiều ký tự. Nếu “thông tin” chứa thông tin thử nghiệm thay vì cờ, thì “thông tin” hiện tại không được sửa đổi

get_date[]

Trả về ngày gửi của tin nhắn dưới dạng số dấu phẩy động biểu thị số giây kể từ kỷ nguyên

set_date[ngày]

Đặt ngày gửi tin nhắn thành ngày, một số dấu phẩy động biểu thị số giây kể từ kỷ nguyên

get_info[]

Trả về một chuỗi chứa “thông tin” cho một tin nhắn. Điều này hữu ích cho việc truy cập và sửa đổi “thông tin” thử nghiệm [tôi. e. , không phải danh sách cờ]

set_info[thông tin]

Đặt "thông tin" thành thông tin, phải là một chuỗi

Khi một phiên bản được tạo dựa trên một phiên bản hoặc, các tiêu đề Trạng thái và Trạng thái X sẽ bị bỏ qua và các chuyển đổi sau sẽ diễn ra

trạng thái kết quả

hoặc tiểu bang

thư mục con “cur”

cờ ô

cờ F

cờ F

cờ R

Lá cờ

cờ S

cờ R

cờ chữ T

cờ D

Khi một phiên bản được tạo dựa trên một phiên bản, các chuyển đổi sau sẽ diễn ra

trạng thái kết quả

tiểu bang

thư mục con “cur”

Trình tự “không nhìn thấy”

thư mục con “cur” và cờ S

không có trình tự "không nhìn thấy"

cờ F

trình tự "được gắn cờ"

cờ R

trình tự “trả lời”

Khi một phiên bản được tạo dựa trên một phiên bản, các chuyển đổi sau sẽ diễn ra

trạng thái kết quả

tiểu bang

thư mục con “cur”

nhãn “không nhìn thấy”

thư mục con “cur” và cờ S

không có nhãn "không nhìn thấy"

cờ p

nhãn “đã chuyển tiếp” hoặc “gửi lại”

cờ R

nhãn “đã trả lời”

cờ chữ T

nhãn “đã xóa”

lớp hộp thư. mboxMessage[tin nhắn=Không có]

Một tin nhắn với các hành vi dành riêng cho mbox. Thông báo tham số có ý nghĩa tương tự như với hàm tạo

Tin nhắn trong hộp thư mbox được lưu trữ cùng nhau trong một tệp duy nhất. Địa chỉ phong bì của người gửi và thời gian gửi thường được lưu trữ trong một dòng bắt đầu bằng “Từ” được sử dụng để biểu thị phần đầu của thư, mặc dù có sự khác biệt đáng kể về định dạng chính xác của dữ liệu này giữa các triển khai mbox. Các cờ cho biết trạng thái của tin nhắn, chẳng hạn như nó đã được đọc hay được đánh dấu là quan trọng, thường được lưu trữ trong các tiêu đề Trạng thái và X-Status

Cờ thông thường cho tin nhắn mbox như sau

Lá cờ

Nghĩa

Giải trình

R

Đọc

Đọc

O

MUA đã phát hiện trước đây

D

Đã xóa

Đánh dấu để xóa tiếp theo

F

gắn cờ

Đánh dấu là quan trọng

A

đã trả lời

Trả lời cho

Các cờ “R” và “O” được lưu trữ trong tiêu đề Trạng thái và các cờ “D”, “F” và “A” được lưu trữ trong tiêu đề Trạng thái X. Các cờ và tiêu đề thường xuất hiện theo thứ tự được đề cập

trường hợp cung cấp các phương pháp sau

get_from[]

Trả về một chuỗi đại diện cho dòng “Từ” đánh dấu phần đầu của thư trong hộp thư mbox. "Từ" hàng đầu và dòng mới ở cuối được loại trừ

set_from[từ_ , thời gian_=None]

Đặt dòng “From ” thành from_, dòng này phải được chỉ định mà không có “From” ở đầu hoặc dòng mới ở cuối. Để thuận tiện, time_ có thể được chỉ định và sẽ được định dạng phù hợp và được thêm vào from_. Nếu time_ được chỉ định, nó phải là một thể hiện, một bộ phù hợp để chuyển đến hoặc

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
74 [để sử dụng]

get_flags[]

Trả về một chuỗi chỉ định các cờ hiện được đặt. Nếu tin nhắn tuân theo định dạng thông thường, kết quả là sự nối theo thứ tự sau của số 0 hoặc một lần xuất hiện của mỗi

import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
09,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
31,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
06,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
07 và
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
34

set_flags[flags]

Đặt cờ được chỉ định bởi cờ và bỏ đặt tất cả các cờ khác. Các cờ tham số phải là dấu nối theo bất kỳ thứ tự nào không hoặc nhiều lần xuất hiện của mỗi

import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
09,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
31,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
06,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
07 và
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
34

add_flag[flag]

Đặt [các] cờ được chỉ định bởi cờ mà không thay đổi các cờ khác. Để thêm nhiều cờ cùng một lúc, cờ có thể là một chuỗi gồm nhiều ký tự

remove_flag[flag]

Bỏ đặt [các] cờ được chỉ định bởi cờ mà không thay đổi các cờ khác. Để xóa nhiều cờ cùng một lúc, cờ có thể là một chuỗi gồm nhiều ký tự

Khi một phiên bản được tạo dựa trên một phiên bản, một dòng "Từ" được tạo dựa trên ngày phân phối của phiên bản và các chuyển đổi sau sẽ diễn ra

trạng thái kết quả

tiểu bang

cờ R

cờ S

cờ ô

thư mục con “cur”

cờ D

cờ chữ T

cờ F

cờ F

Lá cờ

cờ R

Khi một phiên bản được tạo dựa trên một phiên bản, các chuyển đổi sau sẽ diễn ra

trạng thái kết quả

tiểu bang

Cờ R và cờ O

không có trình tự "không nhìn thấy"

cờ ô

Trình tự “không nhìn thấy”

cờ F

trình tự "được gắn cờ"

Lá cờ

trình tự “trả lời”

Khi một phiên bản được tạo dựa trên một phiên bản, các chuyển đổi sau sẽ diễn ra

trạng thái kết quả

tiểu bang

Cờ R và cờ O

không có nhãn "không nhìn thấy"

cờ ô

nhãn “không nhìn thấy”

cờ D

nhãn “đã xóa”

Lá cờ

nhãn “đã trả lời”

Khi một phiên bản được tạo dựa trên một phiên bản, dòng “Từ” được sao chép và tất cả các cờ tương ứng trực tiếp

trạng thái kết quả

tiểu bang

cờ R

cờ R

cờ ô

cờ ô

cờ D

cờ D

cờ F

cờ F

Lá cờ

Lá cờ

lớp hộp thư. MHMessage[tin nhắn=Không có]

Một thông báo với các hành vi dành riêng cho MH. Thông báo tham số có ý nghĩa tương tự như với hàm tạo

Các bản tin MH không hỗ trợ đánh dấu hoặc cờ theo nghĩa truyền thống, nhưng chúng hỗ trợ các chuỗi, là các nhóm hợp lý của các bản tin tùy ý. Một số chương trình đọc thư [mặc dù không phải mh và nmh tiêu chuẩn] sử dụng các trình tự theo cách tương tự như các cờ được sử dụng với các định dạng khác, như sau

Sự nối tiếp

Giải trình

vô hình

Chưa đọc, nhưng đã được MUA phát hiện trước đó

đã trả lời

Trả lời cho

gắn cờ

Đánh dấu là quan trọng

trường hợp cung cấp các phương pháp sau

get_sequences[]

Trả về danh sách tên của các chuỗi bao gồm thông báo này

set_sequences[sequences]

Đặt danh sách các trình tự bao gồm thông báo này

add_sequence[sequence]

Thêm trình tự vào danh sách các trình tự bao gồm thông báo này

remove_sequence[sequence]

Xóa trình tự khỏi danh sách trình tự bao gồm thông báo này

Khi một phiên bản được tạo dựa trên một phiên bản, các chuyển đổi sau sẽ diễn ra

trạng thái kết quả

tiểu bang

Trình tự “không nhìn thấy”

không có cờ S

trình tự “trả lời”

cờ R

trình tự "được gắn cờ"

cờ F

Khi một phiên bản được tạo dựa trên một phiên bản hoặc, các tiêu đề Trạng thái và Trạng thái X sẽ bị bỏ qua và các chuyển đổi sau sẽ diễn ra

trạng thái kết quả

hoặc tiểu bang

Trình tự “không nhìn thấy”

không có cờ R

trình tự “trả lời”

Lá cờ

trình tự "được gắn cờ"

cờ F

Khi một phiên bản được tạo dựa trên một phiên bản, các chuyển đổi sau sẽ diễn ra

trạng thái kết quả

tiểu bang

Trình tự “không nhìn thấy”

nhãn “không nhìn thấy”

trình tự “trả lời”

nhãn “đã trả lời”

lớp hộp thư. BabylMessage[tin nhắn=Không có]

Một tin nhắn với các hành vi dành riêng cho Babyl. Thông báo tham số có ý nghĩa tương tự như với hàm tạo

Một số nhãn thông báo, được gọi là thuộc tính, được xác định theo quy ước để có ý nghĩa đặc biệt. Các thuộc tính như sau

Nhãn mác

Giải trình

vô hình

Chưa đọc, nhưng đã được MUA phát hiện trước đó

đã xóa

Đánh dấu để xóa tiếp theo

nộp

Đã sao chép sang tệp hoặc hộp thư khác

đã trả lời

Trả lời cho

chuyển tiếp

đã chuyển tiếp

đã chỉnh sửa

Được sửa đổi bởi người dùng

oán giận

phẫn nộ

Theo mặc định, Rmail chỉ hiển thị các tiêu đề hiển thị. Tuy nhiên, lớp sử dụng các tiêu đề ban đầu vì chúng hoàn thiện hơn. Các tiêu đề hiển thị có thể được truy cập rõ ràng nếu muốn

trường hợp cung cấp các phương pháp sau

get_labels[]

Trả về danh sách nhãn trên tin nhắn

set_labels[nhãn]

Đặt danh sách nhãn trên thư thành nhãn

add_label[nhãn]

Thêm nhãn vào danh sách nhãn trên thư

remove_label[nhãn]

Xóa nhãn khỏi danh sách nhãn trên thư

get_visible[]

Trả về một phiên bản có tiêu đề là tiêu đề hiển thị của thư và có nội dung trống

set_visible[có thể nhìn thấy]

Đặt tiêu đề hiển thị của thư giống với tiêu đề trong thư. Tham số hiển thị phải là một thể hiện, một thể hiện, một chuỗi hoặc một đối tượng giống như tệp [sẽ được mở ở chế độ văn bản]

update_visible[]

Khi các tiêu đề ban đầu của một phiên bản được sửa đổi, các tiêu đề hiển thị sẽ không tự động được sửa đổi để tương ứng. Phương pháp này cập nhật các tiêu đề có thể nhìn thấy như sau. mỗi tiêu đề hiển thị có tiêu đề gốc tương ứng được đặt thành giá trị của tiêu đề gốc, mỗi tiêu đề hiển thị không có tiêu đề gốc tương ứng sẽ bị xóa và bất kỳ Ngày, Từ, Trả lời, Tới, CC và Chủ đề nào có trong

Khi một phiên bản được tạo dựa trên một phiên bản, các chuyển đổi sau sẽ diễn ra

trạng thái kết quả

tiểu bang

nhãn “không nhìn thấy”

không có cờ S

nhãn “đã xóa”

cờ chữ T

nhãn “đã trả lời”

cờ R

nhãn "chuyển tiếp"

cờ p

Khi một phiên bản được tạo dựa trên một phiên bản hoặc, các tiêu đề Trạng thái và Trạng thái X sẽ bị bỏ qua và các chuyển đổi sau sẽ diễn ra

trạng thái kết quả

hoặc tiểu bang

nhãn “không nhìn thấy”

không có cờ R

nhãn “đã xóa”

cờ D

nhãn “đã trả lời”

Lá cờ

Khi một phiên bản được tạo dựa trên một phiên bản, các chuyển đổi sau sẽ diễn ra

trạng thái kết quả

tiểu bang

nhãn “không nhìn thấy”

Trình tự “không nhìn thấy”

nhãn “đã trả lời”

trình tự “trả lời”

lớp hộp thư. Thông báo MMDF[thông báo=Không có]

Thông báo có hành vi dành riêng cho MMDF. Thông báo tham số có ý nghĩa tương tự như với hàm tạo

Như với thư trong hộp thư mbox, thư MMDF được lưu trữ với địa chỉ của người gửi và ngày gửi trong một dòng đầu tiên bắt đầu bằng “Từ “. Tương tự như vậy, các cờ cho biết trạng thái của thông báo thường được lưu trữ trong các tiêu đề Trạng thái và X-Status

Cờ thông thường cho tin nhắn MMDF giống với cờ của tin nhắn mbox và như sau

Lá cờ

Nghĩa

Giải trình

R

Đọc

Đọc

O

MUA đã phát hiện trước đây

D

Đã xóa

Đánh dấu để xóa tiếp theo

F

gắn cờ

Đánh dấu là quan trọng

A

đã trả lời

Trả lời cho

Các cờ “R” và “O” được lưu trữ trong tiêu đề Trạng thái và các cờ “D”, “F” và “A” được lưu trữ trong tiêu đề Trạng thái X. Các cờ và tiêu đề thường xuất hiện theo thứ tự được đề cập

các phiên bản cung cấp các phương thức sau, giống hệt với các phương thức được cung cấp bởi

get_from[]

Trả về một chuỗi đại diện cho dòng “Từ” đánh dấu phần đầu của thư trong hộp thư mbox. "Từ" hàng đầu và dòng mới ở cuối được loại trừ

set_from[từ_ , thời gian_=None]

Đặt dòng “From ” thành from_, dòng này phải được chỉ định mà không có “From” ở đầu hoặc dòng mới ở cuối. Để thuận tiện, time_ có thể được chỉ định và sẽ được định dạng phù hợp và được thêm vào from_. Nếu time_ được chỉ định, nó phải là một thể hiện, một bộ phù hợp để chuyển đến hoặc

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
74 [để sử dụng]

get_flags[]

Trả về một chuỗi chỉ định các cờ hiện được đặt. Nếu tin nhắn tuân theo định dạng thông thường, kết quả là sự nối theo thứ tự sau của số 0 hoặc một lần xuất hiện của mỗi

import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
09,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
31,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
06,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
07 và
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
34

set_flags[flags]

Đặt cờ được chỉ định bởi cờ và bỏ đặt tất cả các cờ khác. Các cờ tham số phải là dấu nối theo bất kỳ thứ tự nào không hoặc nhiều lần xuất hiện của mỗi

import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
09,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
31,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
06,
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
07 và
import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]
34

add_flag[flag]

Đặt [các] cờ được chỉ định bởi cờ mà không thay đổi các cờ khác. Để thêm nhiều cờ cùng một lúc, cờ có thể là một chuỗi gồm nhiều ký tự

remove_flag[flag]

Bỏ đặt [các] cờ được chỉ định bởi cờ mà không thay đổi các cờ khác. Để xóa nhiều cờ cùng một lúc, cờ có thể là một chuỗi gồm nhiều ký tự

Khi một phiên bản được tạo dựa trên một phiên bản, một dòng "Từ" được tạo dựa trên ngày phân phối của phiên bản và các chuyển đổi sau sẽ diễn ra

trạng thái kết quả

tiểu bang

cờ R

cờ S

cờ ô

thư mục con “cur”

cờ D

cờ chữ T

cờ F

cờ F

Lá cờ

cờ R

Khi một phiên bản được tạo dựa trên một phiên bản, các chuyển đổi sau sẽ diễn ra

trạng thái kết quả

tiểu bang

Cờ R và cờ O

không có trình tự "không nhìn thấy"

cờ ô

Trình tự “không nhìn thấy”

cờ F

trình tự "được gắn cờ"

Lá cờ

trình tự “trả lời”

Khi một phiên bản được tạo dựa trên một phiên bản, các chuyển đổi sau sẽ diễn ra

trạng thái kết quả

tiểu bang

Cờ R và cờ O

không có nhãn "không nhìn thấy"

cờ ô

nhãn “không nhìn thấy”

cờ D

nhãn “đã xóa”

Lá cờ

nhãn “đã trả lời”

Khi một phiên bản được tạo dựa trên một phiên bản, dòng “Từ” được sao chép và tất cả các cờ tương ứng trực tiếp

trạng thái kết quả

tiểu bang

cờ R

cờ R

cờ ô

cờ ô

cờ D

cờ D

cờ F

cờ F

Lá cờ

Lá cờ

ngoại lệ

Các lớp ngoại lệ sau đây được định nghĩa trong mô-đun

ngoại lệ hộp thư. Lỗi

Lớp cơ sở cho tất cả các ngoại lệ dành riêng cho mô-đun khác

ngoại lệ hộp thư. NoSuchMailboxError

Xảy ra khi một hộp thư được mong đợi nhưng không tìm thấy, chẳng hạn như khi khởi tạo một lớp con có đường dẫn không tồn tại [và với tham số tạo được đặt thành

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
75] hoặc khi mở một thư mục không tồn tại

ngoại lệ hộp thư. NotEmptyError

Xảy ra khi hộp thư không trống nhưng dự kiến ​​sẽ trống, chẳng hạn như khi xóa thư mục chứa thư

ngoại lệ hộp thư. LỗiClash bên ngoài

Xảy ra khi một số điều kiện liên quan đến hộp thư nằm ngoài tầm kiểm soát của chương trình khiến nó không thể tiếp tục, chẳng hạn như khi không lấy được khóa mà chương trình khác đã giữ khóa hoặc khi đã tồn tại tên tệp được tạo duy nhất

ngoại lệ hộp thư. Lỗi định dạng

Xảy ra khi không thể phân tích cú pháp dữ liệu trong tệp, chẳng hạn như khi một phiên bản cố gắng đọc tệp

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]
35 bị hỏng

ví dụ

Một ví dụ đơn giản về in chủ đề của tất cả thư trong hộp thư có vẻ thú vị

import mailbox
for message in mailbox.mbox['~/mbox']:
    subject = message['subject']       # Could possibly be None.
    if subject and 'python' in subject.lower[]:
        print[subject]

Để sao chép tất cả thư từ hộp thư Babyl sang hộp thư MH, chuyển đổi tất cả thông tin định dạng cụ thể có thể được chuyển đổi

import mailbox
destination = mailbox.MH['~/Mail']
destination.lock[]
for message in mailbox.Babyl['~/RMAIL']:
    destination.add[mailbox.MHMessage[message]]
destination.flush[]
destination.unlock[]

Ví dụ này sắp xếp thư từ một số danh sách gửi thư vào các hộp thư khác nhau, cẩn thận để tránh thư bị hỏng do chương trình khác sửa đổi đồng thời, mất thư do chương trình bị gián đoạn hoặc kết thúc sớm do thư không đúng định dạng trong hộp thư

Chủ Đề