raspberry Pi を使って人感センサーに反応したらiPhoneにお知らせする物を作りたいと思い、調べたところ下記のサイトを発見しました。
https://www.sho-yamane.me/entry/2015/06/07/195407
こちらを参考にgmailのアドレス、パスワードを変更して実行してみたのですが、
python
line 52 return msg SyntaxError: 'return' outside function
とエラーが表示されます。
python
#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import print_function import os.path import datetime import smtplib import socket import time import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(25, GPIO.IN) from contextlib import closing 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 = "アドレス" PASSWARD = "パスワード" #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 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, PASSWARD) smtpobj.sendmail(from_addr, to_addrs, msg.as_string()) smtpobj.close() if __name__ == '__main__': #宛先アドレス to_addr = "アドレス" #件名と本文 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) #メッセージ作成(添付ファイルなし) while True: inputValue = GPIO.input(25) if (inputValue == True): msg = create_message(ADDRESS, to_addr, subject, body) send(ADDRESS, [to_addr], msg) time.sleep(1)
何が原因なのでしょうか?
まだ回答がついていません
会員登録して回答してみよう