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()
    
  • 相关阅读:
    拖拽改变元素位置或大小bug修复
    拖拽改变元素位置或大小
    vue使用input上传多张图片,可以预览
    javaScript面向对象编程学习(二)
    移动端适配字体大小
    js的时间戳的转换
    vue-cli3.X中的vue.config.js的配置
    javaScript面向对象编程学习(一)
    Visual Studio code 常用插件集集合。
    js的四个小练习
  • 原文地址:https://www.cnblogs.com/minding/p/11180464.html
Copyright © 2011-2022 走看看