------------------------mailconfig.py popservername = 'pop.secureserver.net' popusername = 'PP4E@learning-python.com'
smtpservername = 'smtpout.secureserver.net'
myaddress = 'PP4E@learning-python.com' mysignature = ('Thanks,\n' '--Mark Lutz (http://learning-python.com, http://rmi.net/~lutz)')
smtpuser = None # per your ISP smtppasswdfile = '' # set to '' to be asked
poppasswdfile = r'c:\temp\pymailgui.txt' # set to '' to be asked
sentmailfile = r'.\sentmail.txt' # . means in current working dir
savemailfile = r'c:\temp\savemail.txt' # not used in PyMailGUI: dialog
fetchEncoding = 'utf8' # 4E: how to decode and store message text (or latin1?) headersEncodeTo = None # 4E: how to encode non-ASCII headers sent (None=utf8)
fetchlimit = 25 # 4E: maximum number headers/emails to fetch on loads
--------------------------------------------------popmail.py
import poplib, getpass, sys, mailconfig
mailserver = mailconfig.popservername # ex: 'pop.rmi.net' mailuser = mailconfig.popusername # ex: 'lutz' mailpasswd = getpass.getpass('Password for %s?' % mailserver)
print('Connecting...') server = poplib.POP3(mailserver) server.user(mailuser) # connect, log in to mail server server.pass_(mailpasswd) # pass is a reserved word
try: print(server.getwelcome()) # print returned greeting message msgCount, msgBytes = server.stat() print('There are', msgCount, 'mail messages in', msgBytes, 'bytes') print(server.list()) print('-' * 80) input('[Press Enter key]')
for i in range(msgCount):
hdr, message, octets = server.retr(i+1) # octets is byte count
for line in message: print(line.decode()) # retrieve, print all mail
print('-' * 80) # mail text is bytes in 3.x
if i < msgCount - 1:
input('[Press Enter key]') # mail box locked till quit
finally: # make sure we unlock mbox server.quit() # else locked till timeout print('Bye.')
---------------------------------------------smtpmail.py
import smtplib, sys, email.utils, mailconfig mailserver = mailconfig.smtpservername # ex: smtp.rmi.net
From = input('From? ').strip() # or import from mailconfig To = input('To? ').strip() # ex: python-list@python.org Tos = To.split(';') # allow a list of recipients Subj = input('Subj? ').strip() Date = email.utils.formatdate() # curr datetime, rfc2822
text = ('From: %s\nTo: %s\nDate: %s\nSubject: %s\n\n' % (From, To, Date, Subj))
print('Type message text, end with line=[Ctrl+d (Unix), Ctrl+z (Windows)]') while True: line = sys.stdin.readline() if not line: break # exit on ctrl-d/z
text += line
print('Connecting...') server = smtplib.SMTP(mailserver) # connect, no log-in step failed = server.sendmail(From, Tos, text) server.quit() if failed: # smtplib may raise exceptions print('Failed recipients:', failed) # too, but let them pass here else: print('No errors.') print('Bye.')