2014-10-02 3 views
1

Цель этого скрипта - прослушивать последовательный порт и отправлять электронное письмо с изображением ip-камеры, которое извлекается при его срабатывании. Вот что я до сих пор с ошибкой.Ошибка при установке MIME на скрипт python

`импорта время импорта серийный из email.MIMEMultipart импорта MIMEMultipart из email.MIMEText импортных MimeText из email.MIMEImage импорта MIMEImage импорта smtplib импорта DateTime импорта URLLIB

TO = '[email protected]' 
GMAIL_USER = '[email protected]' 
GMAIL_PASS = 'password' 

SUBJECT = 'Intrusion= NODE 18' 
TEXT = 'MOVEMENT' 

ser = serial.Serial('/dev/tty.usbserial-DA00S0U6', 115200) 

def send_email(): 
urllib.urlretrieve ("http://<IPADDRESS>/snapshot/view4.jpg","view4.jpg") 
print("Sending Email") 
print str(datetime.datetime.now()) 
smtpserver = smtplib.SMTP("smtp.gmail.com",587) 
smtpserver.ehlo() 
smtpserver.starttls() 
smtpserver.ehlo 
smtpserver.login(GMAIL_USER, GMAIL_PASS) 
header = 'To:' + TO + '\n' + 'From: ' + GMAIL_USER 
header = header + '\n' + 'Subject:' + SUBJECT + '\n' 
print header 
msg = MIMEMultipart() + header + '\n' + TEXT + ' \n\n' 
msg.attach(MIMEImage(file("view4.jpg").read())) 
smtpserver.sendmail(GMAIL_USER, TO, msg) 
smtpserver.close() 



while True: 
message = ser.readline() 
print(message) 
if "[18] MOTION" in message : 
    send_email() 

time.sleep(0.5)` 

ОШИБКА: = ==

Traceback (most recent call last): File "motion3.py", line 58, in <module> send_email() File "motion3.py", line 32, in send_email msg = MIMEMultipart() + header + '\n' + TEXT + ' \n\n' TypeError: unsupported operand type(s) for +: 'instance' and 'str'

ответ

1

В будущем , пожалуйста, убедитесь, что код, который вы публикуете, правильно отступил!

Вы не используете класс MIMEMultipart должным образом. Пожалуйста, смотрите email: Examples в документах Python; третий пример показывает правильное использование MIMEMultipart.

В сообщении об ошибке говорится, что вы пытаетесь добавить новый экземпляр класса MIMEMultipart() и строку header, и вы не можете этого сделать!

В вашем коде могут быть логические ошибки, но я не очень внимательно смотрел на него - это слишком тяжело, пытаясь прочитать плохо отступы Python. :(

Смежные вопросы