python - 如果条件为真,则使用 python 代码发送邮件

标签 python python-2.7 smtp

我们设置树莓派来测量服务器室温并将输出保存在这种格式的文本文件中"Temp: 24.0 C Humidity: 67.0 %" (每 2 秒更新一次)使用 python 脚本。

现在我正在寻找Python代码来从文本文件中读取温度值(例如24.0),如果条件为真(例如(Temp>35.0)),则向我发送电子邮件,否则不执行任何操作并退出。

我是 python 新手,所以请帮助我,我们已经编写了电子邮件代码及其工作原理,只需在下面的代码中启用上述请求的条件即可。

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
fromaddr = "sender@gmail.com"
toaddr = "recipient@gmail.com"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "Alert: Server Room  " 
body = "Server room current temprature is : "
msg.attach(MIMEText(body, 'plain'))
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(fromaddr, "password")
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()

此脚本将使用 cron 运行标签。

最佳答案

我想像这样的事情会做:

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText


def send_email(temperature):
    fromaddr = "sender@gmail.com"
    toaddr = "recipient@gmail.com"
    msg = MIMEMultipart()
    msg['From'] = fromaddr
    msg['To'] = toaddr
    msg['Subject'] = "Alert: Server Room  "
    body = "Server room current temprature is : " + temperature
    msg.attach(MIMEText(body, 'plain'))
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login(fromaddr, "password")
    text = msg.as_string()
    server.sendmail(fromaddr, toaddr, text)
    server.quit()


f = open("temp_log.txt", "r")
content = f.read()
temp = content.split(' ')[1]
if float(temp) > 35:
    send_email(temp)

关于python - 如果条件为真,则使用 python 代码发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52326434/

相关文章:

python - cursor.copy_from 在 postgres 中失败

python - 有人可以帮我调试我的 python 程序吗?

python - 使用 twine 进行 Python pkg 上传还有优势吗?

python - 有没有更轻量级的方法来获取可变长度的元组?

php - CakePHP SwiftMailer SMTP TLS OpenSSL 错误 SSL3_GET_RECORD :wrong version number

python - 如何使用 2 因素身份验证从 python 发送电子邮件?

Python 文件模式详细信息

python - 如何查看在 Django 的 manage.py test 命令期间运行了哪些测试

python - 在字典列表中编码

python - SMTPAuthenticationError-535,b'5.7.8用户名和密码不被接受。 -从Docker发送电子邮件