• python-发邮件


    1、导入所需要的模块

    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    from email.mime.image import MIMEImage
    from email.header import Header

    2、设置smtplib所需的参数

    # 下面的发件人,收件人是用于邮件传输的。
    smtpserver = 'exmail.qq.com'
    username = 'XXX@daydaycook.com'
    password = '***'
    sender = 'XXX@daydaycook.com'
    # receiver='XXX@126.com' 单个收件人
    # 多个收件人
    receiver = ['XXX@daydaycook.com', '***g@daydaycook.com']

    3、构造邮件对象MIMEMultipart对象

    subject = '中文标题'
    subject = Header(subject, 'utf-8').encode()
    # 下面的主题,发件人,收件人,日期是显示在邮件页面上的。
    # MIMEMultipart主要有三种类型:mixed、alternative、related
    msg = MIMEMultipart('mixed') msg['Subject'] = subject msg['From'] = 'XXX@daydaycook.com <XXX@daydaycook.com>' # msg['To'] = 'XXX@126.com' # 收件人为多个收件人,通过join将列表转换为以;为间隔的字符串 msg['To'] = ";".join(receiver) # msg['Date']='2012-3-16'

    4、构造文字内容

    text = "嗨!
    你好吗?
    Here is the link you wanted:
    http://www.baidu.com"
    text_plain = MIMEText(text, 'plain', 'utf-8')
    msg.attach(text_plain)

    5、构造图片附件

    send_image_file = open(r'/Users/ddcuser/Downloads/true.jpeg', 'rb').read()
    image = MIMEImage(send_image_file)
    image.add_header('Content-ID', '<image1>')
    image["Content-Disposition"] = 'attachment; filename="testimage.png"'
    msg.attach(image)

    6、构造html附件

    # 发送正文中的图片:由于包含未被许可的信息,网易邮箱定义为垃圾邮件,报554 DT:SPM :<p><img src="cid:image1"></p>
    html = """
    <html>  
      <head></head>  
      <body>  
        <p>Hi!<br>  
           How are you?<br>  
           Here is the <a href="http://www.baidu.com">link</a> you wanted.<br> 
        </p> 
      </body>  
    </html>  
    """
    text_html = MIMEText(html, 'html', 'utf-8')
    text_html["Content-Disposition"] = 'attachment; filename="text_html.html"'
    msg.attach(text_html)

    7、构造压缩文件zip附件

    sendfile = open(r'/Users/ddcuser/Downloads/20191211160425_sendCredit_result.zip', 'rb').read()
    text_att = MIMEText(sendfile, 'base64', 'utf-8')
    text_att["Content-Type"] = 'application/octet-stream'
    # 附件可以重命名成aaa.zip
    text_att.add_header('Content-Disposition', 'attachment', filename='aaa.zip')
    msg.attach(text_att)

    8、构造txt附件

    sendfile = open(r'/Users/ddcuser/Downloads/20191211160425_sendCredit_result.txt', 'rb').read()
    text_att = MIMEText(sendfile, 'base64', 'utf-8')
    text_att["Content-Type"] = 'application/octet-stream'
    # 附件可以重命名成aaa.txt
    text_att.add_header('Content-Disposition', 'attachment', filename='aaa.txt')
    msg.attach(text_att)

    9、构造xls附件

    sendfile = open(r'/Users/ddcuser/Downloads/20191211160425_sendCredit_result.xls', 'rb').read()
    text_att = MIMEText(sendfile, 'base64', 'utf-8')
    text_att["Content-Type"] = 'application/octet-stream'
    # 附件可以重命名成aaa.xls
    text_att.add_header('Content-Disposition', 'attachment', filename='aaa.xls')
    msg.attach(text_att)

    10、发送邮件

    smtp = smtplib.SMTP()
    # 发件人是腾讯企业邮箱,如果用其他邮箱需要修改参数
    smtp.connect('smtp.exmail.qq.com')  
    smtp.login(username, password)
    smtp.sendmail(sender, receiver, msg.as_string())
    smtp.quit()
  • 相关阅读:
    观察者模式
    Java中关于HashMap源码的研究
    抽象工厂模式
    适配器模式
    oracle创建表空间并赋予权限
    外观模式
    oracle中循环读出一个表的信息插入到另外一个表中
    javaScript对金额处理的方式
    装饰器模式
    建造者模式
  • 原文地址:https://www.cnblogs.com/lilyo/p/12024305.html
Copyright © 2020-2023  润新知