From f9e3cf1f9f6eaefba19593783e1cdf7681d1fa65 Mon Sep 17 00:00:00 2001 From: Berker Peksag Date: Wed, 25 Feb 2015 18:14:09 +0200 Subject: Issue #23511: Port email-simple.py to Python 3. Also, update email examples to use the context manager version of open(). Patch by Baptiste Mispelon. --- Doc/includes/email-headers.py | 5 +++-- Doc/includes/email-mime.py | 5 ++--- Doc/includes/email-read-alternative-new-api.py | 3 ++- Doc/includes/email-simple.py | 7 +++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Doc/includes/email-headers.py b/Doc/includes/email-headers.py index a53317d..89c8f3a 100644 --- a/Doc/includes/email-headers.py +++ b/Doc/includes/email-headers.py @@ -1,8 +1,9 @@ # Import the email modules we'll need from email.parser import Parser -# If the e-mail headers are in a file, uncomment this line: -#headers = Parser().parse(open(messagefile, 'r')) +# If the e-mail headers are in a file, uncomment these two lines: +# with open(messagefile) as fp: +# headers = Parser().parse(fp) # Or for parsing headers in a string, use: headers = Parser().parsestr('From: \n' diff --git a/Doc/includes/email-mime.py b/Doc/includes/email-mime.py index a90edc1..61d0830 100644 --- a/Doc/includes/email-mime.py +++ b/Doc/includes/email-mime.py @@ -20,9 +20,8 @@ msg.preamble = 'Our family reunion' for file in pngfiles: # Open the files in binary mode. Let the MIMEImage class automatically # guess the specific image type. - fp = open(file, 'rb') - img = MIMEImage(fp.read()) - fp.close() + with open(file, 'rb') as fp: + img = MIMEImage(fp.read()) msg.attach(img) # Send the email via our own SMTP server. diff --git a/Doc/includes/email-read-alternative-new-api.py b/Doc/includes/email-read-alternative-new-api.py index 8ab4e9f..3f5ab24 100644 --- a/Doc/includes/email-read-alternative-new-api.py +++ b/Doc/includes/email-read-alternative-new-api.py @@ -12,7 +12,8 @@ from email.parser import BytesParser from imaginary import magic_html_parser # In a real program you'd get the filename from the arguments. -msg = BytesParser(policy=policy.default).parse(open('outgoing.msg', 'rb')) +with open('outgoing.msg', 'rb') as fp: + msg = BytesParser(policy=policy.default).parse(fp) # Now the header items can be accessed as a dictionary, and any non-ASCII will # be converted to unicode: diff --git a/Doc/includes/email-simple.py b/Doc/includes/email-simple.py index 077568d..b9b8b41 100644 --- a/Doc/includes/email-simple.py +++ b/Doc/includes/email-simple.py @@ -6,10 +6,9 @@ from email.mime.text import MIMEText # Open a plain text file for reading. For this example, assume that # the text file contains only ASCII characters. -fp = open(textfile, 'rb') -# Create a text/plain message -msg = MIMEText(fp.read()) -fp.close() +with open(textfile) as fp: + # Create a text/plain message + msg = MIMEText(fp.read()) # me == the sender's email address # you == the recipient's email address -- cgit v0.12