【资料整理】python发送邮件

参考:/my.oschina.net/leejun2005/blog/74416

文件形式的邮件
#!/usr/bin/env python3  #coding: utf-8  import smtplib  from email.mime.text import MIMEText  from email.header import Header    sender = '***'  receiver = '***'  subject = 'python email test'  smtpserver = 'smtp.163.com'  username = '***'  password = '***'    msg = MIMEText('你好','plain','utf-8')#中文需参数‘utf-8’,单字节字符不需要  msg['Subject'] = Header(subject, 'utf-8')    smtp = smtplib.SMTP()  smtp.connect('smtp.163.com')  smtp.login(username, password)  smtp.sendmail(sender, receiver, msg.as_string())  smtp.quit()
HTML形式的邮件
#!/usr/bin/env python3  #coding: utf-8  import smtplib  from email.mime.text import MIMEText    sender = '***'  receiver = '***'  subject = 'python email test'  smtpserver = 'smtp.163.com'  username = '***'  password = '***'    msg = MIMEText('

你好

','html','utf-8') msg['Subject'] = subject smtp = smtplib.SMTP() smtp.connect('smtp.163.com') smtp.login(username, password) smtp.sendmail(sender, receiver, msg.as_string()) smtp.quit()
带图片的HTML邮件
#!/usr/bin/env python3  #coding: utf-8  import smtplib  from email.mime.multipart import MIMEMultipart  from email.mime.text import MIMEText  from email.mime.p_w_picpath import MIMEImage    sender = '***'  receiver = '***'  subject = 'python email test'  smtpserver = 'smtp.163.com'  username = '***'  password = '***'    msgRoot = MIMEMultipart('related')  msgRoot['Subject'] = 'test message'    msgText = MIMEText('Some HTML text and an p_w_picpath.
good!','html','utf-8') msgRoot.attach(msgText) fp = open('h:\\python\\1.jpg', 'rb') msgImage = MIMEImage(fp.read()) fp.close() msgImage.add_header('Content-ID', '
') msgRoot.attach(msgImage) smtp = smtplib.SMTP() smtp.connect('smtp.163.com') smtp.login(username, password) smtp.sendmail(sender, receiver, msgRoot.as_string()) smtp.quit()
带附件的邮件
#!/usr/bin/env python3  #coding: utf-8  import smtplib  from email.mime.multipart import MIMEMultipart  from email.mime.text import MIMEText  from email.mime.p_w_picpath import MIMEImage    sender = '***'  receiver = '***'  subject = 'python email test'  smtpserver = 'smtp.163.com'  username = '***'  password = '***'    msgRoot = MIMEMultipart('related')  msgRoot['Subject'] = 'test message'    #构造附件  att = MIMEText(open('h:\\python\\1.jpg', 'rb').read(), 'base64', 'utf-8')  att["Content-Type"] = 'application/octet-stream'  att["Content-Disposition"] = 'p_w_upload; filename="1.jpg"'  msgRoot.attach(att)            smtp = smtplib.SMTP()  smtp.connect('smtp.163.com')  smtp.login(username, password)  smtp.sendmail(sender, receiver, msgRoot.as_string())  smtp.quit()
群邮件
#!/usr/bin/env python3  #coding: utf-8  import smtplib  from email.mime.text import MIMEText    sender = '***'  receiver = ['***','****',……]  subject = 'python email test'  smtpserver = 'smtp.163.com'  username = '***'  password = '***'    msg = MIMEText('你好','plain','utf-8')    msg['Subject'] = subject    smtp = smtplib.SMTP()  smtp.connect('smtp.163.com')  smtp.login(username, password)  smtp.sendmail(sender, receiver, msg.as_string())  smtp.quit()
各种元素都包含的邮件
#!/usr/bin/env python3  #coding: utf-8  import smtplib  from email.mime.multipart import MIMEMultipart  from email.mime.text import MIMEText  from email.mime.p_w_picpath import MIMEImage    sender = '***'  receiver = '***'  subject = 'python email test'  smtpserver = 'smtp.163.com'  username = '***'  password = '***'    # Create message container - the correct MIME type is multipart/alternative.  msg = MIMEMultipart('alternative')  msg['Subject'] = "Link"    # Create the body of the message (a plain-text and an HTML version).  text = "Hi!\nHow are you?\nHere is the link you wanted:\nhttp://www.python.org"  html = """\            

Hi!

How are you?
Here is the link you wanted.

""" # Record the MIME types of both parts - text/plain and text/html. part1 = MIMEText(text, 'plain') part2 = MIMEText(html, 'html') # Attach parts into message container. # According to RFC 2046, the last part of a multipart message, in this case # the HTML message, is best and preferred. msg.attach(part1) msg.attach(part2) #构造附件 att = MIMEText(open('h:\\python\\1.jpg', 'rb').read(), 'base64', 'utf-8') att["Content-Type"] = 'application/octet-stream' att["Content-Disposition"] = 'p_w_upload; filename="1.jpg"' msg.attach(att) smtp = smtplib.SMTP() smtp.connect('smtp.163.com') smtp.login(username, password) smtp.sendmail(sender, receiver, msg.as_string()) smtp.quit() 基于SSL的邮件
#!/usr/bin/env python3  #coding: utf-8  import smtplib  from email.mime.text import MIMEText  from email.header import Header  sender = '***'  receiver = '***'  subject = 'python email test'  smtpserver = 'smtp.163.com'  username = '***'  password = '***'    msg = MIMEText('你好','plain','utf-8')#中文需参数‘utf-8’,单字节字符不需要  msg['Subject'] = Header(subject, 'utf-8')    smtp = smtplib.SMTP()  smtp.connect('smtp.163.com')  smtp.ehlo()  smtp.starttls()  smtp.ehlo()  smtp.set_debuglevel(1)  smtp.login(username, password)  smtp.sendmail(sender, receiver, msg.as_string())  smtp.quit()