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() 
  • 相关阅读:
    form查询相关表
    获取datagrid更新初始值、新值
    数据库约束查询
    强名称工具(来着.NET)
    使用IE插件不能打开的解决
    导入导出报错
    List批量任务多线程执行工具类
    在C#中使用NHibernate框架查询数据
    使用bat文件顺序执行多个应用程序
    用C#实现抽象工厂模式
  • 原文地址:https://www.cnblogs.com/simplestupid/p/4735337.html
Copyright © 2011-2022 走看看