将plpy查询结果包含到smtplib电子邮件正文中

时间:2019-04-10 09:32:13

标签: postgresql plpython

我有一个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()

我在做什么错了?

0 个答案:

没有答案