質問編集履歴

2 ファイルにアクセス権を付与の追加

kazushige

kazushige score 20

2020/01/14 09:26  投稿

motionからメールを送信できない
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)
  • Raspberry Pi

    2103 questions

    Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

1 問題の発生した環境 、生している問題・エラーメッセージの説明の追加

kazushige

kazushige score 20

2020/01/07 17:34  投稿

motionからメールを送信できない
RasperrPi3B+で、OSはraspbian GNU/Linux 9\n\1 バージョン9.11で、  
rasuberrypi3+bにカメラを装着し、motionで、外部のpcから、画像を見られるようにし、さらに、動体を検出し、
四角枠で示すようにしたのですが、さらに、動体を検出した時に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を使うときは、連動して他に、指定することがあるのでしょうか。
on_movie_startを使うときは、連動して他に、指定することがあるのでしょうか。
参考ですが、senser.pyは、"http://make.bcde.jp/python/gmailで簡単にメール送信/のプログラム"を、
もとに作成したものです。python senser.py を実行してgmailが送信されていますので問題はないと思っています。
# -*- 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)
  • Raspberry Pi

    2103 questions

    Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る