1 \section{\module{poplib
} ---
4 \declaremodule{standard
}{poplib
}
5 \modulesynopsis{POP3 protocol client (requires sockets).
}
8 %Even though I put it into LaTeX, I cannot really claim that I wrote
9 %it since I just stole most of it from the poplib.py source code and
10 %the imaplib ``chapter''.
12 \indexii{POP3
}{protocol
}
14 This module defines a class,
\class{POP3
}, which encapsulates a
15 connection to an POP3 server and implements protocol as defined in
16 \rfc{1725}. The
\class{POP3
} class supports both the minimal and
17 optional command sets.
19 A single class is provided by the
\module{poplib
} module:
21 \begin{classdesc
}{POP3
}{host
\optional{, port
}}
22 This class implements the actual POP3 protocol. The connection is
23 created when the instance is initialized.
24 If
\var{port
} is omitted, the standard POP3 port (
110) is used.
27 One exception is defined as an attribute of the
\module{poplib
} module:
29 \begin{excdesc
}{error_proto
}
30 Exception raised on any errors. The reason for the exception is
31 passed to the constructor as a string.
35 \subsection{POP3 Objects
\label{pop3-objects
}}
37 All POP3 commands are represented by methods of the same name,
38 in lower-case; most return the response text sent by the server.
40 An
\class{POP3
} instance has the following methods:
43 \begin{methoddesc
}{getwelcome
}{}
44 Returns the greeting string sent by the POP3 server.
48 \begin{methoddesc
}{user
}{username
}
49 Send user command, response should indicate that a password is required.
52 \begin{methoddesc
}{pass_
}{password
}
53 Send password, response includes message count and mailbox size.
54 Note: the mailbox on the server is locked until
\method{quit()
} is
58 \begin{methoddesc
}{apop
}{user, secret
}
59 Use the more secure APOP authentication to log into the POP3 server.
62 \begin{methoddesc
}{rpop
}{user
}
63 Use RPOP authentication (similar to UNIX r-commands) to log into POP3 server.
66 \begin{methoddesc
}{stat
}{}
67 Get mailbox status. The result is a tuple of
2 integers:
68 \code{(
\var{message count
},
\var{mailbox size
})
}.
71 \begin{methoddesc
}{list
}{\optional{which
}}
72 Request message list, result is in the form
73 \code{(
\var{response
},
['mesg_num octets', ...
])
}. If
\var{which
} is
74 set, it is the message to list.
77 \begin{methoddesc
}{retr
}{which
}
78 Retrieve whole message number
\var{which
}. Result is in form
79 \code{(
\var{response
},
['line', ...
],
\var{octets
})
}.
82 \begin{methoddesc
}{dele
}{which
}
83 Delete message number
\var{which
}.
86 \begin{methoddesc
}{rset
}{}
87 Remove any deletion marks for the mailbox.
90 \begin{methoddesc
}{noop
}{}
91 Do nothing. Might be used as a keep-alive.
94 \begin{methoddesc
}{quit
}{}
95 Signoff: commit changes, unlock mailbox, drop connection.
98 \begin{methoddesc
}{top
}{which, howmuch
}
99 Retrieves the message header plus
\var{howmuch
} lines of the message
100 after the header of message number
\var{which
}. Result is in form
101 \code{(
\var{response
},
['line', ...
],
\var{octets
})
}.
104 \begin{methoddesc
}{uidl
}{\optional{which
}}
105 Return message digest (unique id) list.
106 If
\var{which
} is specified, result contains the unique id for that
107 message in the form
\code{'
\var{response
}\
\var{mesgnum
}\
\var{uid
}},
108 otherwise result is list
\code{(
\var{response
},
['mesgnum uid', ...
],
113 \subsection{POP3 Example
\label{pop3-example
}}
115 Here is a minimal example (without error checking) that opens a
116 mailbox and retrieves and prints all messages:
119 import getpass, poplib
121 M = poplib.POP3('localhost')
122 M.user(getpass.getuser())
123 M.pass_(getpass.getpass())
124 numMessages = len(M.list()
[1])
125 for i in range(numMessages):
126 for j in M.retr(i+
1)
[1]:
130 At the end of the module, there is a test section that contains a more
131 extensive example of usage.