[3.12] gh-120662: Improve smtplib example (GH-120668) (#120682)

gh-120662: Improve `smtplib` example (GH-120668)
(cherry picked from commit 4bc27abdbe)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
Miss Islington (bot) 2024-06-18 14:04:06 +02:00 committed by GitHub
parent 5d997b5d4e
commit 70d71fb4ea
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -556,34 +556,33 @@ This example prompts the user for addresses needed in the message envelope ('To'
and 'From' addresses), and the message to be delivered. Note that the headers
to be included with the message must be included in the message as entered; this
example doesn't do any processing of the :rfc:`822` headers. In particular, the
'To' and 'From' addresses must be included in the message headers explicitly. ::
'To' and 'From' addresses must be included in the message headers explicitly::
import smtplib
def prompt(prompt):
return input(prompt).strip()
def prompt(title):
return input(title).strip()
fromaddr = prompt("From: ")
toaddrs = prompt("To: ").split()
from_addr = prompt("From: ")
to_addrs = prompt("To: ").split()
print("Enter message, end with ^D (Unix) or ^Z (Windows):")
# Add the From: and To: headers at the start!
msg = ("From: %s\r\nTo: %s\r\n\r\n"
% (fromaddr, ", ".join(toaddrs)))
lines = [f"From: {from_addr}", f"To: {', '.join(to_addrs)}", ""]
while True:
try:
line = input()
except EOFError:
break
if not line:
break
msg = msg + line
else:
lines.append(line)
msg = "\r\n".join(lines)
print("Message length is", len(msg))
server = smtplib.SMTP('localhost')
server = smtplib.SMTP("localhost")
server.set_debuglevel(1)
server.sendmail(fromaddr, toaddrs, msg)
server.sendmail(from_addr, to_addrs, msg)
server.quit()
.. note::