【发布时间】:2021-12-31 12:10:08
【问题描述】:
我想就在我用于发送报告的邮件脚本中添加 zip 选项征求意见。
我将电子邮件附件限制设置为 25MB,因此邮件程序脚本会删除一些超过 25MB 的 json 格式的报告。我想添加一个 zip 支持,如果附件比 ex 大,它将压缩附件。 15MB。
以下代码仅是邮件部分。
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.mime.text import MIMEText
from email.utils import COMMASPACE
import sys
from os.path import basename
import argparse
import conf
import os
import zipfile
import zlib
###############################################################################
# Mailer function for server running environment
def send_mail(recipients, cc=None, subject=None, attachment=None, body=None, send_from=None):
msg = MIMEMultipart()
msg['Subject'] = subject
msg['From'] = send_from
msg['To'] = ','.join(recipients)
if cc:
msg['CC'] = ','.join(cc)
recipients.extend(cc)
if body:
text = MIMEText(body, 'html')
msg.attach(text)
if attachment:
with open(attachment, 'rb') as fp:
att = MIMEApplication(fp.read(), Name=basename(attachment))
att['Content-Disposition'] = f'attachment; filename="{basename(attachment)}"'
msg.attach(att)
smtp = smtplib.SMTP(conf.RELAY)
smtp.sendmail(send_from, recipients, msg.as_string())
smtp.quit()
【问题讨论】: