Case study
To tie together some of the principles presented in this chapter, let's build a mailing list manager. The manager will keep track of email addresses categorized into named groups. When it's time to send a message, we can pick a group and send the message to all email addresses assigned to that group.
Now, before we start working on this project, we ought to have a safe way to test it, without sending emails to a bunch of real people. Luckily, Python has our back here; like the test HTTP server, it has a built-in Simple Mail Transfer Protocol (SMTP) server that we can instruct to capture any messages we send without actually sending them. We can run the server with the following command:
$python -m smtpd -n -c DebuggingServer localhost:1025
Running this command at command prompt will start an SMTP server running on port 1025 on the local machine. But we've instructed it to use the DebuggingServer
class (this class comes with the built-in SMTP module), which, instead of sending mails...