У меня есть функция 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()
Что я делаю не так?