4
匹配MIME附件,我發現這個片段在正式examples用Python創建
if maintype == 'text':
fp = open(path)
# Note: we should handle calculating the charset
msg = MIMEText(fp.read(), _subtype=subtype)
fp.close()
elif maintype == 'image':
fp = open(path, 'rb')
msg = MIMEImage(fp.read(), _subtype=subtype)
fp.close()
elif maintype == 'audio':
fp = open(path, 'rb')
msg = MIMEAudio(fp.read(), _subtype=subtype)
fp.close()
else:
fp = open(path, 'rb')
msg = MIMEBase(maintype, subtype)
msg.set_payload(fp.read())
fp.close()
# Encode the payload using Base64
encoders.encode_base64(msg)
我需要的正是這種功能:任何類型的文件添加到電子郵件中。
我想避免這麼長的if-elif-elif部分,因爲它對我來說看起來多餘。
有沒有通用的方式將任何類型的數據附加到電子郵件?
在我的情況「的所有類型的數據」是指:
- 該文件是長
- 只有不到兩個百萬字節的MIME類型可以通過
mimetypes.guess_type()
謝謝你的回答。我問自己在生產代碼中存在多少無用的代碼行,這些代碼行來自官方的python文檔。我猜想有數百名程序員複製粘貼而沒有思考的例子並將其插入到他們的代碼中......快樂的膨脹:-) – guettli
您也可以查看'/usr/lib/python3.5/email的代碼/ mime/application.py','/ usr/lib/python3.5/email/mime/image.py'等等,它幾乎是空的 –