簡體   English   中英

在python腳本上附加MIME時出錯

[英]Error when attaching MIME on python script

該腳本的目的是偵聽串行端口並發送帶有IP攝像機圖片的電子郵件,該電子郵件在觸發時會被檢索。 這是我到目前為止出錯的地方。

`導入時間從電子郵件導入序列.MIMEMultipart從電子郵件導入MIMEMultipart.MIMEText從電子郵件導入MIMEText.MIMEImage導入MIMEImage導入smtplib導入日期時間導入urllib

TO = '111111111@mms.att.net'
GMAIL_USER = 'email@gmail.com'
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'

將來, 確保您發布的代碼正確縮進!

您沒有正確使用MIMEMultipart類。 請查看電子郵件: Python文檔中的示例 第三個示例顯示了MIMEMultipart的正確用法。

錯誤消息是您試圖將一個新的類實例MIMEMultipart()和一個字符串header添加在一起,但是您不能這樣做!

您的代碼中可能存在邏輯錯誤,但我並未對其進行仔細的研究-嘗試閱讀縮進的Python實在是太痛苦了。 :(

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM