2016-05-07 14 views
0

Ich habe Bild mit Webcam erfasst und wenn ich die Taste drücken sendet es mail.Ich benutze while-Schleife wie in der folgenden Code gezeigt, läuft dieser Code perfekt, aber das Problem ist, dieses Programm so senden viele Bilder (auch früher capured Bild), während wir das Programm zu stoppen, so dass es so viele Bilder nur in einer Mail angehängt sind. Jetzt will ich Programm kontinuierlich in Raspberry Pi laufen, aber immer noch sollte es nur die zuletzt aufgenommene Bild sein, was muss ich dafür etwas tun?Raspberry Pi: senden nur zuletzt aufgenommenes Bild mit Webcam

Vielen Dank im Voraus.

Dies ist mein Code:

import smtplib 
import time 
import subprocess 
from email.MIMEMultipart import MIMEMultipart 
from email.MIMEBase import MIMEBase 
from email.MIMEText import MIMEText 
from email.MIMEImage import MIMEImage 
import RPi.GPIO as GPIO 

# Define these once; use them twice! 
strFrom = '[email protected]' 
strTo = '[email protected]' 

#create email 
# Create the root message and fill in the from, to, and subj$ 
msgRoot = MIMEMultipart() 
msgRoot['Subject'] = 'subject' 
msgRoot['From'] = strFrom 
msgRoot['To'] = strTo 


GPIO.setmode(GPIO.BCM) 
GPIO.setup(4, GPIO.IN) 
print "press button to send email" 
while True: 
     input=GPIO.input(4) 
     if input == True: 
       print "button pressed" 
       subprocess.Popen(["fswebcam","-r 640x480", "capture.jpg"]) 
       time.sleep(2) 
       # This example assumes the image is in the current 
       # directory 
       fp = open('capture.jpg', 'rb') 
       msgImage = MIMEImage(fp.read()) 
       fp.close() 
       msgRoot.attach(msgImage) 
       # send mail 
       s = smtplib.SMTP('smtp.gmail.com',587) 
       s.starttls() 
       s.login('[email protected]' , 'password') 
       s.sendmail(strFrom, strTo,msgRoot.as_string()) 
       s.close() 
       print "Email sent" 
       time.sleep(0.2) 

Antwort

0
msgRoot.attach(msgImage) 

    msgRoot.set_payload(msImage) #Such modified 

Da Sie die gleiche Kopie des Anhangs verwenden, ist im Aufwind

überlagert