Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3-附件错误_Python - Fatal编程技术网

Python3-附件错误

Python3-附件错误,python,Python,我正在尝试使用Python3脚本自动向一个收件人发送每日电子邮件。那封邮件应该附有附件 目前,我正在尝试下面的Python 3.5代码,它只成功运行了一次 import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.base import MIMEBase from email import encoders fromaddr

我正在尝试使用Python3脚本自动向一个收件人发送每日电子邮件。那封邮件应该附有附件

目前,我正在尝试下面的Python 3.5代码,它只成功运行了一次

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

fromaddr = "me@home.net"
toaddr = "theother@home.biz"

msg = MIMEMultipart()

msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "Daily report"

body = "Email text"

msg.attach(MIMEText(body, 'plain'))

filename = 'DAILY REPORT.xls'
attachment = open('Z:\\DAILY REPORT.xls', "rb")
part = MIMEBase('application', 'octet-stream')
part.set_payload(attachment).read()
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" %     filename)

msg.attach(part)

server = smtplib.SMTP('smtp.server.biz', 25)
server.starttls()
server.login(fromaddr, "apasswordhere")
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()
在它第一次工作(并且收到电子邮件+附件)之后,它似乎不再工作了。我不断得到的例外是:

  Traceback (most recent call last):
  File "Z:/main.py", line 23, in <module>
    part.set_payload(attachment).read()
AttributeError: 'NoneType' object has no attribute 'read'
回溯(最近一次呼叫最后一次):
文件“Z:/main.py”,第23行,在
部分。设置_有效载荷(附件)。读取()
AttributeError:“非类型”对象没有属性“读取”
请注意,要附加到电子邮件消息的文件和python脚本位于远程NAS上,在Windows Server 2012上本地命名为Z:。 在这个系统上,我在两个不同的目录中安装了Pyton2和Python3。当从控制台调用python.exe时,我的系统默认使用Python2,但如果使用Python3爆炸性地运行脚本,则会出现相同的错误。 在我的编辑器(Python3控制台上默认的Pyecharm)中运行脚本也会抛出相同的错误


我真的很困惑,希望大家能对我的错误做出评论

我的错误就在这一行:

part.set_payload(attachment).read()
这应该是:

part.set_payload(attachment.read())

@jwodder

发现了错误。您希望行
部分做什么。设置有效负载(附件)。read()
做什么?看起来你想把第一个
放在末尾:
部分。设置有效负载(附件。read())
谢谢你的帮助,你的评论解决了我的问题。我看不到我的错误。@J_CsT:如果你找到了你问题的答案,那么把答案贴出来并接受它。这对每个人都有好处。@VincentSavard我很爱你,但我真的不知道该在哪里发布和接受。我读到相关的开关应该在大约15分钟后出现,但在将近30分钟后什么也没有出现。对不起,也许我是个新手。Thanks@J_CsT:如果向下滚动,会出现一个文本字段,您可以在其中写入答案。写下你问题的答案,然后贴出来。15分钟后你就可以接受答案了。