Python 2.7 smtplib, как отправить вложение с отказом в разрешении на ошибку 13?

надеюсь, с тобой все хорошо. Я использую python 2.7 с PyCharm в Windows 7 и новичок в этом. Я пытаюсь отправить электронное письмо с вложением, но получаю сообщение об ошибке:
IOError: [Errno 13] Отказано в доступе: 'C:\Users\Myname\Desktop' Это мой код:

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()

Я читал другие статьи, и самая распространенная проблема, похоже, заключается в том, что у меня недостаточно прав, однако я являюсь администратором. В любом случае, если бы это было так, что мне нужно делать именно шаг за шагом, чтобы это заработало? или есть другая проблема, не связанная с разрешением? Заранее спасибо. С теплыми пожеланиями


person PIMg021    schedule 26.09.2016    source источник
comment
Не имеет отношения, но использует необработанные строки (r"c:\User\whatever") или косую черту при жестком кодировании путей.   -  person ThiefMaster    schedule 26.09.2016


Ответы (1)


Вы пытаетесь открыть каталог как файл, вам нужно передать фактический файл, который вы хотите открыть:

attachment =  open(r"C:\Users\MyName\Desktop\the_file")
person Padraic Cunningham    schedule 26.09.2016
comment
Не беспокойтесь, в Linux вы получите IOError: [Errno 21] Is a directory:, что немного информативнее. - person Padraic Cunningham; 26.09.2016
comment
Здоровья, приятель! Все еще разбираюсь с python в знакомой винде, скоро надеюсь перейти на линкукс! Еще раз спасибо - person PIMg021; 26.09.2016