我设置了一个函数,该函数旨在每分钟调用一次以发送电子邮件。我使用以下命令每分钟调用一次:
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()
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)
尽管我不知道在我的程序中将其放置在何处或何时退出该功能。
任何帮助将不胜感激。