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()
    
  • 相关阅读:
    dnn
    DATAGRID学习
    在.net下的换行符
    treeview
    《25项最优时间管理工具与技巧》
    vim常用操作
    【Google给毕业生的忠告】
    MySQL的安装、使用及权限管理
    各种国际化标准组织
    ubuntu thunderbird 邮箱 163 配置 不能发送问题
  • 原文地址:https://www.cnblogs.com/minding/p/11180464.html
Copyright © 2011-2022 走看看