2014-02-05 5 views
-1
import smtplib 
from email import encoders 
from email.message import Message 
from email.mime.audio import MIMEAudio 
from email.mime.base import MIMEBase 
from email.mime.image import MIMEImage 
from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 
msg = MIMEMultipart() 
msg.attach(MIMEText(file("P:/Email/test.txt").read())) 



sender = '[email protected]' 
reciever = '[email protected]' 
msg = 'Hello' 


# Credentials (if needed) 
username = 'user' 
password = 'pass' 

# The actual mail send 
server = smtplib.SMTP('localhost') 
server.starttls() 
server.login(username,password) 
server.sendmail(sender, reciever, msg) 
server.quit() 

TraceBack (самым последний вызов последнего): Файл "attach2.py", строка 27, в
server.sendmail (отправитель, Ресивер, сбще) Файл «C: \ Python33 \ lib \ smtplib.py ", строка 775, в sendmail (код, resp) = self.data (msg) Файл« C: \ Python33 \ lib \ smtplib.py », строка 516, в данные q = _quote_periods (msg) Файл «C: \ Python33 \ lib \ smtplib.py», строка 167, в quote_periods return re.sub (br '(? m) ^.', b '..', bindata) Файл «C: \ Python33 \ lib \ re.py ", строка 170, в подпункте _compile (шаблон, флаги) .sub (repl, string, count) ТипError: ожидаемая строка или буферEmail Ошибки помочь мне с синтаксической ошибкой

Почему я вижу это сообщение об ошибке. что-то не так с моим файлом библиотеки python?

+2

Вам следует добавить метки, для которых этот язык должен привлекать больше внимания. В теге по электронной почте очень мало подписчиков. – t0mppa

+0

какой это язык? –

+0

Вам нужно добавить языковой тег. С учетом сказанного ** фактически прочитайте код, который вы отправили **. Вы объявили 'msg = MIMEMultipart()' и использовали его уже как 'msg.attach', поэтому вы явно не можете теперь ссылаться на него в строке 10 с помощью' msg = 'Hello''. Я даже не знаю, на каком языке это, и * Я * вижу эту ошибку. –

ответ

2

В предыдущей строке отсутствует закрывающая скобка.

... 
msg = MIMEMultipart() 
msg.attach(MIMEText(file("P:/Email/test.txt").read())) # line missing a parenthesis 

sender = '[email protected]' 
... 
+0

Я думал, что исправил это уже. хммм. Позвольте мне попробовать msg.attach (MIMEText (файл («P: /Email/test.txt»). read())) –

+0

все еще такое же сообщение об ошибке. msg.attach (MIMEText (файл («P: /Email/test.txt»). read())) NameError: имя 'файл' не определен –

+0

О, ОК. Способ чтения в файле - 'open', а не' file'. – user1462309

0

В вашем коде 2 ошибки. Вот мое исправление

import smtplib 
from email import encoders 
from email.message import Message 
from email.mime.audio import MIMEAudio 
from email.mime.base import MIMEBase 
from email.mime.image import MIMEImage 
from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 
msg = MIMEMultipart() 
msg.attach(MIMEText(file("P:/Email/test.txt").read())) 



sender = '[email protected]' 
reciever = '[email protected]' 

# ***here don't overwrite the MIMEMultipart() obj*** 
# msg = 'Hello' 


# Credentials (if needed) 
username = 'user' 
password = 'pass' 

# The actual mail send 
server = smtplib.SMTP('localhost') 
server.starttls() 
server.login(username,password) 

# ***here msg.as_string() to convert the MIMEMultipart() obj to a string*** 
server.sendmail(sender, reciever, msg.as_string()) 

server.quit() 
Смежные вопросы