• 【转载】python发送邮件实例


    本文转自:http://www.cnblogs.com/lonelycatcher/archive/2012/02/09/2343463.html

    这几天要用python发送邮件,上网找到这篇文章感觉蛮全面的,故转载收藏之。


     1. 文件形式的邮件

    #!/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('你好','text','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() 

     2. 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><h1>你好</h1></html>','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() 

    3. 带图片的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.image import MIMEImage 
    
    sender = '***' 
    receiver = '***' 
    subject = 'python email test' 
    smtpserver = 'smtp.163.com' 
    username = '***' 
    password = '***' 
    
    msgRoot = MIMEMultipart('related') 
    msgRoot['Subject'] = 'test message' 
    
    msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<br><img src="cid:image1"><br>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', '<image1>') 
    msgRoot.attach(msgImage) 
    
    smtp = smtplib.SMTP() 
    smtp.connect('smtp.163.com') 
    smtp.login(username, password) 
    smtp.sendmail(sender, receiver, msgRoot.as_string()) 
    smtp.quit() 

    4. 带附件的邮件

    #!/usr/bin/env python3 
    #coding: utf-8 
    import smtplib 
    from email.mime.multipart import MIMEMultipart 
    from email.mime.text import MIMEText 
    from email.mime.image 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"] = 'attachment; 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() 

     5. 群邮件

    #!/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('你好','text','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() 

    6. 各种元素都包含的邮件

    #!/usr/bin/env python3 
    #coding: utf-8 
    import smtplib 
    from email.mime.multipart import MIMEMultipart 
    from email.mime.text import MIMEText 
    from email.mime.image 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!
    How are you?
    Here is the link you wanted:
    http://www.python.org" 
    html = """ 
    <html> 
    <head></head> 
    <body> 
    <p>Hi!<br> 
    How are you?<br> 
    Here is the <a href="http://www.python.org">link</a> you wanted. 
    </p> 
    </body> 
    </html> 
    """ 
    
    # 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"] = 'attachment; 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() 

    7. 基于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('你好','text','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() 
  • 相关阅读:
    mysql系列--基础知识
    微信开发(2)–获取access_token
    微信开发(1)–开发模式
    https协议 ssl协议以及证书生成
    ▲▲▲▲▲ Daodantou 小练习▲▲▲▲▲
    第十三章 模块[DDT书本学习 小甲鱼]【1】
    第十一章 类和对象[DDT书本学习 小甲鱼]【3】
    第十一章 类和对象[DDT书本学习 小甲鱼]【2】
    第十一章 类和对象[DDT书本学习 小甲鱼]【1】
    hexdump(b,step,sep,decimal) 和 server、client 端 [北极星]
  • 原文地址:https://www.cnblogs.com/simplestupid/p/4735337.html
Copyright © 2020-2023  润新知