Python 2.7 smtplib如何发送错误13权限被拒绝的附件?

问题描述:

希望你很好。我在Windows 7上使用PyCharm的python 2.7,并且新增了它。 我试图发送邮件带有附件,但得到的错误:
IO错误:[错误13]许可被拒绝:“C:\用户\的Myname \桌面”这是我的代码:Python 2.7 smtplib如何发送错误13权限被拒绝的附件?

import smtplib 
from email.MIMEMultipart import MIMEMultipart 
from email.MIMEText import MIMEText 
from email.MIMEBase import MIMEBase 
from email import encoders 

fromaddr = "[email protected]" 
toaddr = "[email protected]" 

msg = MIMEMultipart() 

msg['From'] = fromaddr 
msg['To'] = toaddr 
msg['Subject'] = "Something bla bla bla" 

body = "Something bla bla bla" 

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

filename = "CV.txt" 
attachment = open("C:\Users\MyName\Desktop","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.gmail.com', 587) 
server.starttls() 
server.login(fromaddr, "PASSWORD") 
text = msg.as_string() 
server.sendmail(fromaddr, toaddr, text) 
server.quit() 

我读了其他文章和最常见的问题似乎是没有足够的权限,但我是管理员。无论如何,如果这是我需要做的准确一步一步来实现它的情况?或者是否有另一个与权限无关的问题? 在此先感谢。 最热烈的问候

+0

无关,但无论是使用原始字符串('R“C: \ User \ whatever“),或者在硬编码路径时正斜杠。 – ThiefMaster

你试图打开一个目录为一个文件,你需要通过实际的文件要打开:

attachment = open(r"C:\Users\MyName\Desktop\the_file") 
+0

谢谢Padraic!我是一个白痴:)哈哈还是初学者! – PIMg021

+0

不用担心,在Linux上你会得到'IOError:[Errno 21]是一个目录:'这是多一点信息性的 –

+1

干杯伴侣!在熟悉的窗口中仍然围绕python,很快希望移动到linkux!再次感谢 – PIMg021