1

我正在尝试使用 python 中的 smtplib 发送一封带有 excel 文件的电子邮件。我收到一条错误消息: TypeError: 'str' object is not callable

这是我的代码:

email_message = email.MIMEMultipart.MIMEMultipart('mixed')
excel_attach = email.mime.base.MIMEBase('application','vnd.ms-excel')

# Gives error "TypeError: 'str' object is not callable"
excel_attach.set_payload(file(absolute_file_location).read())

email.encoders.encode_base64(excel_attach)
excel_attach.add_header('Content-Disposition','attachment;filename={0}'.format(file))
email_message.attach(excel_attach)

为什么这不起作用?

编辑:这似乎是错误的根源file(absolute_file_location).read()...... 我已经通过将它放在不同的行来确定这一点。

4

1 回答 1

0

有问题file(absolute_file_location).read()

我不知道问题出在哪里,但是通过执行以下操作来获取内容...

content = None
with open(file, 'r') as f:
  content = f.read()
  f.close()

excel_attach.set_payload(content)

按预期工作。

于 2012-08-22T03:58:20.810 回答