質問編集履歴
2
ファイルにアクセス権を付与の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,7 +10,11 @@
|
|
10
10
|
on_movie_startを使うときは、連動して他に、指定することがあるのでしょうか。
|
11
11
|
参考ですが、senser.pyは、"http://make.bcde.jp/python/gmailで簡単にメール送信/のプログラム"を、
|
12
12
|
もとに作成したものです。python senser.py を実行してgmailが送信されていますので問題はないと思っています。
|
13
|
+
追記:アクセス権付与が必要なことを知り、chmodでファイルにアクセス権を不とするため、下記の処理を
|
14
|
+
し、再起動したのですが、ダメでした。
|
13
15
|
|
16
|
+
$ sudo chmod +x /home/pi/senser.py
|
17
|
+
|
14
18
|
# -*- coding: utf-8 -*-
|
15
19
|
"""
|
16
20
|
Gmail
|
1
問題の発生した環境 、生している問題・エラーメッセージの説明の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,9 +1,103 @@
|
|
1
|
+
RasperrPi3B+で、OSはraspbian GNU/Linux 9\n\1 バージョン9.11で、
|
1
2
|
rasuberrypi3+bにカメラを装着し、motionで、外部のpcから、画像を見られるようにし、さらに、動体を検出し、
|
2
3
|
四角枠で示すようにしたのですが、さらに、動体を検出した時にgmailを送信出来るようにするため、
|
3
4
|
|
4
|
-
moion.confの中のon_movie_startの後ろに次のようにgmailを送付するスクリプト指定したのですが、送信がされません。どこか、指定が間違っているのかご指導をお願い致します。
|
5
|
+
moion.confの中のon_movie_startの後ろに次のようにgmailを送付するスクリプト指定したのですが、送信がされません。エラーメッセージは、ありません。実行されてそのまま終了しています。どこか、指定が間違っているのかご指導をお願い致します。
|
5
6
|
|
6
7
|
on_movie_start python /home/pi/senser.py または、on_movie_start /home/pi/senser.py
|
7
8
|
senser.pyは、単体では、python senser.py を実行してgmailが送信されています。
|
8
9
|
|
9
|
-
on_movie_startを使うときは、連動して他に、指定することがあるのでしょうか。
|
10
|
+
on_movie_startを使うときは、連動して他に、指定することがあるのでしょうか。
|
11
|
+
参考ですが、senser.pyは、"http://make.bcde.jp/python/gmailで簡単にメール送信/のプログラム"を、
|
12
|
+
もとに作成したものです。python senser.py を実行してgmailが送信されていますので問題はないと思っています。
|
13
|
+
|
14
|
+
# -*- coding: utf-8 -*-
|
15
|
+
"""
|
16
|
+
Gmail
|
17
|
+
Gmailで簡単にメール送信
|
18
|
+
"""
|
19
|
+
|
20
|
+
import os.path
|
21
|
+
import datetime
|
22
|
+
import smtplib
|
23
|
+
from email import Encoders
|
24
|
+
from email.Utils import formatdate
|
25
|
+
from email.MIMEBase import MIMEBase
|
26
|
+
from email.MIMEMultipart import MIMEMultipart
|
27
|
+
from email.MIMEText import MIMEText
|
28
|
+
|
29
|
+
#Gmailアカウント
|
30
|
+
ADDRESS ="**********"
|
31
|
+
|
32
|
+
#SMTPサーバの設定(Gmail用)
|
33
|
+
SMTP = "smtp.gmail.com"
|
34
|
+
PORT = 587
|
35
|
+
|
36
|
+
def create_message(from_addr, to_addr, subject, body, mime=None, attach_file=None):
|
37
|
+
"""
|
38
|
+
メッセージを作成する
|
39
|
+
@:param from_addr 差出人
|
40
|
+
@:param to_addr 宛先
|
41
|
+
@:param subject 件名
|
42
|
+
@:param body 本文
|
43
|
+
@:param mime MIME
|
44
|
+
@:param attach_file 添付ファイル
|
45
|
+
@:return メッセージ
|
46
|
+
"""
|
47
|
+
msg = MIMEMultipart()
|
48
|
+
msg["From"] = from_addr
|
49
|
+
msg["To"] = to_addr
|
50
|
+
msg["Date"] = formatdate()
|
51
|
+
msg["Subject"] = subject
|
52
|
+
body = MIMEText(body)
|
53
|
+
msg.attach(body)
|
54
|
+
|
55
|
+
# 添付ファイル
|
56
|
+
if mime != None and attach_file != None:
|
57
|
+
attachment = MIMEBase(mime['type'],mime['subtype'])
|
58
|
+
file = open(attach_file['path'])
|
59
|
+
attachment.set_payload(file.read())
|
60
|
+
file.close()
|
61
|
+
Encoders.encode_base64(attachment)
|
62
|
+
msg.attach(attachment)
|
63
|
+
attachment.add_header("Content-Disposition","attachment", filename=attach_file['name'])
|
64
|
+
|
65
|
+
return msg
|
66
|
+
|
67
|
+
def send(from_addr, to_addrs, msg):
|
68
|
+
"""
|
69
|
+
メールを送信する
|
70
|
+
@:param from_addr 差出人
|
71
|
+
@:param to_addr 宛先(list)
|
72
|
+
@:param msg メッセージ
|
73
|
+
"""
|
74
|
+
smtpobj = smtplib.SMTP(SMTP, PORT)
|
75
|
+
smtpobj.ehlo()
|
76
|
+
smtpobj.starttls()
|
77
|
+
smtpobj.ehlo()
|
78
|
+
smtpobj.login( ADDRESS, "*************")
|
79
|
+
smtpobj.sendmail(from_addr, to_addrs, msg.as_string())
|
80
|
+
smtpobj.close()
|
81
|
+
|
82
|
+
|
83
|
+
if __name__ == '__main__':
|
84
|
+
|
85
|
+
#宛先アドレス
|
86
|
+
to_addr = "***********@gmail.com"
|
87
|
+
|
88
|
+
#件名と本文
|
89
|
+
subject = "動体検知"
|
90
|
+
body = "動くものを発見しました。"
|
91
|
+
|
92
|
+
#添付ファイル設定(text.txtファイルを添付)
|
93
|
+
mime={'type':'text', 'subtype':'comma-separated-values'}
|
94
|
+
attach_file={'name':'test.txt', 'path':'./text.txt'}
|
95
|
+
|
96
|
+
#メッセージの作成(添付ファイルあり)
|
97
|
+
msg = create_message(ADDRESS, to_addr, subject, body, mime, attach_file)
|
98
|
+
|
99
|
+
#メッセージ作成(添付ファイルなし)
|
100
|
+
#msg = create_message(ADDRESS, to_addr, subject, body)
|
101
|
+
|
102
|
+
#送信
|
103
|
+
send(ADDRESS, [to_addr], msg)
|