Включить результаты запроса plpy в тело письма smtplib - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть функция 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()

Что я делаю не так?

...