メールを送信するために毎分呼び出される関数を設定しました。以下を使用して毎分呼び出します。
import smtplib
def messages_emailed():
fromaddr = FROMADDRESS
toaddrs = TOADDRESS
msg = "this is a test message."
username = USER
password = PASSWORD
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
threading.Timer(60, messages_emailed).start() #runs func every min
messages_emailed()
これは完全に機能しましたが、Terminal でアプリケーションを停止したにもかかわらずcontrol–C
、127.0.0.1:5000
. スクリプトを編集してキャンセル ステートメントを追加することはできますが、保存を押しても何も変更されず、ターミナルでアプリケーションをリロードしようとするとエラーが返されました
> * Running on ``http://127.0.0.1:5000/ ``Traceback (most recent call
> last): File "bit.py", line 79, in <module>
> app.run() File "/Library/Python/2.7/site-packages/Flask-0.9-py2.7.egg/flask/app.py",
> line 739, in run
> run_simple(host, port, self, **options) File "/Library/Python/2.7/site-packages/Werkzeug-0.8.3-py2.7.egg/werkzeug/serving.py",
> line 613, in run_simple
> test_socket.bind((hostname, port)) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py",
> line 224, in meth socket.error: [Errno 48] Address already in use
今のところ、メッセージの送信に使用していたメール アカウントを削除することで、メールの流入を止めています。ただし、理想的には端末から停止したり、プログラムの実行時に実行を停止したりできる、長期的な解決策がどのようになるか疑問に思っています。sys.exit(0)
プログラムのどこにこれを配置するか、いつ関数を終了するかはわかりませんが、調査では使用が提案されています。
どんな助けでも大歓迎です。