我有一个plpython函数,当postgres数据库中的某个值超过阈值时,我可以使用该函数发送电子邮件。该功能很好用,但是由于可以更改阈值,所以我希望电子邮件中的文本将报告阈值设置。
我尝试将plpy.execute与阈值表上的查询一起使用,但是当我尝试将查询结果插入电子邮件正文时,如下面的代码所示,该函数返回错误。
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import COMMASPACE
me = "me@email.com"
you = "you@email.com"
msg = MIMEMultipart('alternative')
msg['Subject'] = "MySubject"
msg['From'] = me
msg['To'] = you
query = "SELECT soglie_allarmi.valore_soglia FROM soglie_allarmi WHERE((soglie_allarmi.name)='all_liv1')"
rv = plpy.execute(query)
foo = rv[i]["valore_soglia"]
text = "Allerta! Livello invaso superiore a m "
part1 = MIMEText(text + foo, 'plain')
msg.attach(part1)
s = smtplib.SMTP('smtp.domain.com', nn)
s.starttls()
s.login("user", "password")
s.sendmail(me, [you,], msg.as_string())
s.quit()
我在做什么错了?