zoukankan      html  css  js  c++  java
  • 【转载】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() 
  • 相关阅读:
    Java实现 LeetCode 792 自定义字符串排序(暴力)
    Java实现 LeetCode 792 自定义字符串排序(暴力)
    asp.net session对象的持久化
    Java实现 LeetCode 791 自定义字符串排序(桶排序)
    Java实现 LeetCode 791 自定义字符串排序(桶排序)
    Java实现 LeetCode 791 自定义字符串排序(桶排序)
    Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
    Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
    Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
    小白也能看懂的约瑟夫环问题
  • 原文地址:https://www.cnblogs.com/simplestupid/p/4735337.html
Copyright © 2011-2022 走看看