我有一个xls文件,其中没有多少图像和图形。 我想附加此文件并发送至电子邮件。 下面是我的代码:
def create_message(report):
message = MIMEMultipart()
message['From'] = msettings.EMAILS_SEND_FROM_NAME
message['To'] = msettings.EMAILS_SEND_TO
message['Subject'] = msettings.EMAILS_SUBJECT
with open(report, "r") as file:
payload = MIMEApplication(file.read(), Name=os.path.basename(report))
content = 'attachment; filename="{}"'.format(os.path.basename(report))
payload['Content-Disposition'] = content
message.attach(payload)
但是我收到以下错误消息
message = create_message(file)
line 148, in create_message
payload = MIMEApplication(file.read(), Name=os.path.basename(report))
File "python-3.4.3\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 732: character maps to <undefined>
我怀疑我的xls文件的编码不受支持。 如何在不丢失xls文件任何信息的情况下,将包含图像,图形和许多格式的xls文件附加为附件?
答案 0 :(得分:-1)
我对yagmail
库感到很幸运,它不仅可以大大简化您的代码,而且我使用附件也没有问题。