RasperrPi3B+で、OSはraspbian GNU/Linux 9\n\1 バージョン9.11で、
rasuberrypi3+bにカメラを装着し、motionで、外部のpcから、画像を見られるようにし、さらに、動体を検出し、
四角枠で示すようにしたのですが、さらに、動体を検出した時にgmailを送信出来るようにするため、
moion.confの中のon_movie_startの後ろに次のようにgmailを送付するスクリプト指定したのですが、送信がされません。エラーメッセージは、ありません。実行されてそのまま終了しています。どこか、指定が間違っているのかご指導をお願い致します。
on_movie_start python /home/pi/senser.py または、on_movie_start /home/pi/senser.py
senser.pyは、単体では、python senser.py を実行してgmailが送信されています。
on_movie_startを使うときは、連動して他に、指定することがあるのでしょうか。
参考ですが、senser.pyは、"http://make.bcde.jp/python/gmailで簡単にメール送信/のプログラム"を、
もとに作成したものです。python senser.py を実行してgmailが送信されていますので問題はないと思っています。
追記:アクセス権付与が必要なことを知り、chmodでファイルにアクセス権を不とするため、下記の処理を
し、再起動したのですが、ダメでした。
$ sudo chmod +x /home/pi/senser.py
-- coding: utf-8 --
"""
Gmail
Gmailで簡単にメール送信
"""
import os.path
import datetime
import smtplib
from email import Encoders
from email.Utils import formatdate
from email.MIMEBase import MIMEBase
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
#Gmailアカウント
ADDRESS ="**********"
#SMTPサーバの設定(Gmail用)
SMTP = "smtp.gmail.com"
PORT = 587
def create_message(from_addr, to_addr, subject, body, mime=None, attach_file=None):
"""
メッセージを作成する
@:param from_addr 差出人
@:param to_addr 宛先
@:param subject 件名
@:param body 本文
@:param mime MIME
@:param attach_file 添付ファイル
@:return メッセージ
"""
msg = MIMEMultipart()
msg["From"] = from_addr
msg["To"] = to_addr
msg["Date"] = formatdate()
msg["Subject"] = subject
body = MIMEText(body)
msg.attach(body)
# 添付ファイル if mime != None and attach_file != None: attachment = MIMEBase(mime['type'],mime['subtype']) file = open(attach_file['path']) attachment.set_payload(file.read()) file.close() Encoders.encode_base64(attachment) msg.attach(attachment) attachment.add_header("Content-Disposition","attachment", filename=attach_file['name']) return msg
def send(from_addr, to_addrs, msg):
"""
メールを送信する
@:param from_addr 差出人
@:param to_addr 宛先(list)
@:param msg メッセージ
"""
smtpobj = smtplib.SMTP(SMTP, PORT)
smtpobj.ehlo()
smtpobj.starttls()
smtpobj.ehlo()
smtpobj.login( ADDRESS, "*************")
smtpobj.sendmail(from_addr, to_addrs, msg.as_string())
smtpobj.close()
if name == 'main':
#宛先アドレス to_addr = "***********@gmail.com" #件名と本文 subject = "動体検知" body = "動くものを発見しました。" #添付ファイル設定(text.txtファイルを添付) mime={'type':'text', 'subtype':'comma-separated-values'} attach_file={'name':'test.txt', 'path':'./text.txt'} #メッセージの作成(添付ファイルあり) msg = create_message(ADDRESS, to_addr, subject, body, mime, attach_file) #メッセージ作成(添付ファイルなし) #msg = create_message(ADDRESS, to_addr, subject, body) #送信 send(ADDRESS, [to_addr], msg)
あなたの回答
tips
プレビュー