Chapter 4. Engaging with E-mails

E-mail is one of the most popular ways of digital communication. Python has a rich number of built-in libraries for dealing with e-mails. In this chapter, we will learn how to use Python to compose, send, and retrieve e-mails. The following topics will be covered in this chapter:

  • Sending e-mails with SMTP through the smtplib library
  • Securing e-mails transport with TLS
  • Retrieving e-mails by using POP3 with poplib
  • Retrieving e-mails by using IMAP with imapclient
  • Manipulating e-mails on the server with IMAP
  • Sending e-mails with the help of the logging module

E-mail terminologies

Before we start composing our first e-mail with the help of Python, let us revisit some of the elementary concepts of e-mail. Often, an end-user uses a piece of software or a graphical user interface (GUI) for composing, sending, and receiving e-mails. This piece of software is known as an e-mail client, for example, Mozilla Thunderbird, Microsoft Outlook, and so on are e-mail clients. The same tasks can be done by a web interface, that is, a webmail client interface. Some common examples of these are: Gmail, Yahoo mail, Hotmail and so on.

The mail that you send from your client interface does not reach the receiver's computer directly. Your mail travels through a number of specialized e-mail servers. These servers run a piece of software called the Mail Transfer Agent (MTA), and its primary job is to route the e-mail to the appropriate destinations by analyzing the mail header, among other things.

Lots of other things also happen en-route, and then the mail reaches the recipient's local e-mail gateway. Then, the recipient can retrieve the e-mail by using his or her e-mail client.

A few protocols are involved in the aforementioned process. The most common of those have been listed here:

  • Simple Mail Transfer Protocol (SMTP): The SMTP protocol is used by the MTA for delivering your e-mail to the recipient's e-mail server. The SMTP protocol can only be used for sending e-mails from one host to another.
  • Post Office Protocol 3 (POP3): The POP3 protocol provides a simple and standardized way for the users to gain access to the mailboxes and then download the messages to their computers. When using the POP3 protocol, your e-mail messages will be downloaded from the Internet service provider's (ISP) mail server to the local computer. You can also leave the copies of your e-mails on the ISP server.
  • Internet Message Access Protocol (IMAP): The IMAP protocol also provides a simple and standardized way for accessing your e-mail from the ISP's local server. IMAP is a client/server protocol in which the e-mails are received and held for you by your ISP. As this requires only a small data transfer, this scheme works well even over a slow connection, such as the mobile phone network. Only if you send a request to read a specific e-mail, that email message will be downloaded from the ISP. You can also do some other interesting things, such as creating and manipulating folders or mailboxes on the server, deleting messages, and so on.

Python has three modules, smtplib, poplib, and imaplib, which support SMTP, POP3, and the IMAP protocols respectively. Each module has options for transmitting the information securely by using the Transport Layer Security (TLS) protocol. Each protocol also uses some form of authentication for ensuring the confidentiality of the data.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.133.126.199