zoukankan      html  css  js  c++  java
  • Python 发送邮件带图片附件 & 图片与文件字节串互换

    • 使用 smtplib 发送邮件
    • 邮件带有附件,附件为图片
    • 图片作为文件读取并与 PIL.Image 格式互换
    from PIL import Image
    import io
    import numpy as np
    
    import smtplib
    from email.mime.application import MIMEApplication
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    from email.utils import formatdate
    
    
    title = 'Title'
    mail_from = 'test0.163.com'
    mail_from_passwd = 'passwd'
    mail_to = ['test1.163.com', 'test2.163.com']
    mail_cc = ['test3.163.com', 'test4.163.com']
    text = 'begin of mail'
    
    msg = MIMEMultipart()
    msg['From'] = send_from
    msg['To'] = ', '.join(mail_to)
    msg['Cc'] = ', '.join(mail_cc)
    msg['Date'] = formatdate(localtime=True)
    msg['Subject'] = title
    
    msg.attach(MIMEText(text, 'html'))
    
    # read image file as raw data & convert to pillow.Image
    img_file_path = '/home/user/Downloads/test_image.jpg'
    with open(img_file_path, "rb") as file:
          img = Image.open(io.BytesIO(file.read()))
    
    w, h = img.size
    # imgarr = np.asarray(img)
    w0 = 200
    h0 = int(h*w0/w)
    imgrz = img.resize((w0, h0))
    
    # convert pillow.Image to raw data
    imgByteArr = io.BytesIO()
    imgrz.save(imgByteArr, format='jpeg')
    imgByteArr = imgByteArr.getvalue()
    
    # attatch as attatchment
    part = MIMEApplication(
        imgByteArr,
        Name='test_image.jpg'
    )
    part['Content-Disposition'] = 'attachment; filename="test_image.jpg"'
    msg.attach(part)
    
    # send email
    smtp = smtplib.SMTP('163.com')
    smtp.ehlo()
    smtp.login(mail_from, mail_from_passwd)
    smtp.sendmail(mail_from, mail_to+mail_cc, msg.as_string())
    smtp.close()
    
  • 相关阅读:
    linux 防火墙管理
    自动化运维监控工具有哪些?常用的开源运维监控工具大全
    编程必备github代码仓库使用
    安全加密算法
    浅笑若风之高效工作流程
    jmeter压力测试工具使用
    ES扩容实战记录
    在5G+AI+CLCP下拉动互联网走向物联网
    设计模式之简单工厂模式
    设计模式之单例模式
  • 原文地址:https://www.cnblogs.com/minding/p/11180464.html
Copyright © 2011-2022 走看看