[Dovecot] Derive text part in quota/quarantine notification mails from html
This commit is contained in:
parent
78d0deed94
commit
2a5f6413fa
@ -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 \
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user