質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Raspberry Pi

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

Q&A

0回答

1210閲覧

motionからメールを送信できない

kazushige

総合スコア20

Raspberry Pi

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

0グッド

0クリップ

投稿2020/01/06 01:06

編集2022/01/12 10:55

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)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問