teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

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

2020/01/14 00:26

投稿

kazushige
kazushige

スコア20

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

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

2020/01/14 00:26

投稿

kazushige
kazushige

スコア20

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)