[Dovecot] Derive text part in quota/quarantine notification mails from html

master
andryyy 2019-02-05 10:38:28 +01:00
parent 78d0deed94
commit 2a5f6413fa
No known key found for this signature in database
GPG Key ID: 8EC34FF2794E25EF
3 changed files with 7 additions and 3 deletions

View File

@ -64,9 +64,10 @@ RUN apt-get update && apt-get -y --no-install-recommends install \
libregexp-common-perl \
liburi-perl \
lzma-dev \
python-redis \
python-html2text \
python-jinja2 \
python-mysql.connector \
python-redis \
make \
mysql-client \
procps \

View File

@ -12,6 +12,7 @@ from jinja2 import Template
import json
import redis
import time
import html2text
while True:
try:
@ -65,6 +66,7 @@ def notify_rcpt(rcpt, msg_count):
with open('/templates/quarantine.tpl') as file_:
template = Template(file_.read())
html = template.render(meta=meta_query, counter=msg_count)
text = html2text.html2text(html)
count = 0
while count < 15:
try:
@ -74,7 +76,6 @@ def notify_rcpt(rcpt, msg_count):
msg['From'] = r.get('Q_SENDER') or "quarantine@localhost"
msg['Subject'] = r.get('Q_SUBJ') or "Spam Quarantine Notification"
msg['Date'] = formatdate(localtime = True)
text = "You have %d new items" % (msg_count)
text_part = MIMEText(text, 'plain', 'utf-8')
html_part = MIMEText(html, 'html', 'utf-8')
msg.attach(text_part)

View File

@ -10,6 +10,7 @@ from jinja2 import Template
import redis
import time
import sys
import html2text
from subprocess import Popen, PIPE, STDOUT
if len(sys.argv) > 2:
@ -41,12 +42,13 @@ else:
template = Template(file_.read())
html = template.render(username=username, percent=percent)
text = html2text.html2text(html)
try:
msg = MIMEMultipart('alternative')
msg['From'] = r.get('QW_SENDER') or "quota-warning@localhost"
msg['Subject'] = r.get('QW_SUBJ') or "Quota warning"
msg['Date'] = formatdate(localtime = True)
text = "Your mailbox is almost full, currently %d%% are in use. Please consider deleting old messages." % (percent)
text_part = MIMEText(text, 'plain', 'utf-8')
html_part = MIMEText(html, 'html', 'utf-8')
msg.attach(text_part)