2016-05-07 9 views
0

ウェブカメラで画像をキャプチャした後、メールを送信するボタンを押すと以下のコードのようにループしますが、このコードは完全に動作していますプログラムを停止している間に多くの画像(以前のcapured画像も送っています)があるので、1つのメールのみに添付されている画像がたくさんあります。今度は、プログラムをcontinuonslyラズベリーパイで実行したいのですが、私はそれを変更する必要がありますか?ラズベリーパイ:ウェブカメラで最後にキャプチャした画像のみを送信する

ありがとうございます。

この

は私のコードです:

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) 

答えて

0
msgRoot.attach(msgImage) 

    msgRoot.set_payload(msImage) #Such modified 

あなたは別館の同じコピーを使用しているためには回復基調に重畳されています