zoukankan      html  css  js  c++  java
  • Python 模块-email

    PYTHON发送邮件

    一,普通文本发送

    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    
    sender = '发送邮箱'
    password = "发送邮箱密码"
    receivers = ['收件人']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
    
    mail_msg = """
    <p>Python 邮件发送测试...</p>
    <p><a href="http://www.baidu.com">这是一个链接</a></p>
    """
    message = MIMEText(mail_msg, 'html', 'utf-8')
    message['From'] = Header("测试测试", 'utf-8')
    message['To'] = Header("测试", 'utf-8')
    
    subject = 'Python SMTP 邮件测试'
    message['Subject'] = Header(subject, 'utf-8')
    
    try:
        server = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人邮箱中的SMTP服务器,端口是25
        server.login(sender, password)  # 括号中对应的是发件人邮箱账号、邮箱密码
        server.sendmail(sender, receivers, message.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
        server.quit()  # 关闭连接
        print("邮件发送成功")
    except smtplib.SMTPException:
        print("Error: 无法发送邮件")

    二、带图片发送

     

    import smtplib
    from email.header import Header
    from email.mime.text import MIMEText
    from email.mime.image import MIMEImage
    from email.mime.multipart import MIMEMultipart
    
    # 发件人地址
    from_addr = "发送邮箱"
    password = "发送邮箱密码"
    to_addr = ["收件邮箱"]
    smtp_server = "smtp.qq.com"
    
    msg = MIMEMultipart('related')
    
    message = """
    <p>Python 邮件发送测试...</p>
    <p><a href="http://www.baidu.com">这是一个链接</a></p>
    <p>图片演示</p>
    <p><img src="cid:image1"></p>
    """
    
    msg['From'] = Header("测试", 'utf-8')
    msg["To"] = Header("测试", 'utf-8')
    msg["Subject"] = Header("测试邮件发送-添加附件", 'utf-8').encode()
    
    msgAlternative = MIMEMultipart('alternative')
    msg.attach(msgAlternative)
    
    msgAlternative.attach(MIMEText(message, 'html', 'utf-8'))
    
    fp = open('data/1.jpg', 'rb')
    msgImag = MIMEImage(fp.read())
    fp.close()
    
    msgImag.add_header('Content-ID', '<image1>')
    msg.attach(msgImag)
    
    server = smtplib.SMTP_SSL(smtp_server, 465)
    server.login(from_addr, password)
    server.sendmail(from_addr, to_addr, msg.as_string())
    server.quit()

    三、附件发送

    import smtplib
    from email.header import Header
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    
    # 发件人地址
    from_addr = "发件邮箱"
    password = "发件邮箱密码"
    to_addr = ["收件邮箱"]
    smtp_server = "smtp.qq.com"
    
    msg = MIMEMultipart()
    
    msg['From'] = Header("测试", 'utf-8')
    msg["To"] = Header("测试", 'utf-8')
    msg["Subject"] = Header("测试邮件发送-添加附件", 'utf-8').encode()
    
    msg.attach(MIMEText("这是python测试邮件发送,并添加了附件", 'plain', 'utf-8'))
    
    att1 = MIMEText(open('data/testemail2.txt', 'rb').read(), 'base64', 'utf-8')
    att1['Content-Type'] = 'application/octet-stream'
    att1['Content-Disposition'] = 'attachment;filename="testemail2.txt"'
    msg.attach(att1)
    
    att2 = MIMEText(open('data/testemail.txt', 'rb').read(), 'base64', 'utf-8')
    att2['Content-Type'] = 'application/octet-stream'
    att2['Content-Disposition'] = 'attachment;filename="testemail.txt"'
    msg.attach(att2)
    
    server = smtplib.SMTP_SSL(smtp_server, 465)
    server.login(from_addr, password)
    server.sendmail(from_addr, to_addr, msg.as_string())
    server.quit()

    s

  • 相关阅读:
    tlb、tlh和tli文件的关系
    String算法
    Reverse A String by STL string
    windows内存管理复习(加深了理解得很!)
    [转载]有关DLL中New和外部Delete以以及跨DLL传递对象的若干问题
    顺势工作时间
    C++箴言:绝不在构造或析构期调用虚函数
    inline函数复习
    从编译器的角度更加深入考虑封装的使用
    复习:constructor和destructor的compiler实现
  • 原文地址:https://www.cnblogs.com/Linc2010/p/8598423.html
Copyright © 2011-2022 走看看