Generate bug-specific messsageids when generating bug reports

This makes the messageids shorter and easier to identify when linking to
them in the archives.
This commit is contained in:
Magnus Hagander
2018-09-24 22:50:17 +02:00
parent bf6ca4a381
commit a4efb719dc
3 changed files with 17 additions and 4 deletions

View File

@ -13,7 +13,7 @@ def _encoded_email_header(name, email):
return formataddr((str(Header(name, 'utf-8')), email))
return email
def send_simple_mail(sender, receiver, subject, msgtxt, attachments=None, usergenerated=False, cc=None, replyto=None, sendername=None, receivername=None):
def send_simple_mail(sender, receiver, subject, msgtxt, attachments=None, usergenerated=False, cc=None, replyto=None, sendername=None, receivername=None, messageid=None):
# attachment format, each is a tuple of (name, mimetype,contents)
# content should be *binary* and not base64 encoded, since we need to
# use the base64 routines from the email library to get a properly
@ -27,7 +27,10 @@ def send_simple_mail(sender, receiver, subject, msgtxt, attachments=None, userge
if replyto:
msg['Reply-To'] = replyto
msg['Date'] = formatdate(localtime=True)
msg['Message-ID'] = make_msgid()
if messageid:
msg['Message-ID'] = messageid
else:
msg['Message-ID'] = make_msgid()
msg.attach(MIMEText(msgtxt, _charset='utf-8'))

View File

@ -4,6 +4,8 @@ from django.db import connection
from django.conf import settings
import os
import time
import hashlib
from pgweb.util.contexts import render_pgweb
from pgweb.util.helpers import template_to_string
@ -13,6 +15,12 @@ from pgweb.core.models import Version
from forms import SubmitBugForm
def _make_bugs_messageid(bugid):
return "{0}-{1}@postgresql.org".format(
bugid,
hashlib.md5("{0}-{1}".format(os.getpid(), time.time())).hexdigest()[:16],
)
@login_required
def submitbug(request):
if request.method == 'POST':
@ -35,6 +43,7 @@ def submitbug(request):
cc=form.cleaned_data['email'],
replyto='%s, %s' % (form.cleaned_data['email'], settings.BUGREPORT_EMAIL),
sendername="PG Bug reporting form",
messageid=_make_bugs_messageid(bugid),
)
return render_pgweb(request, 'support', 'misc/bug_completed.html', {

View File

@ -8,7 +8,7 @@ from pgweb.mailqueue.util import send_simple_mail
from pgweb.util.helpers import template_to_string
import re
def send_template_mail(sender, receiver, subject, templatename, templateattr={}, usergenerated=False, cc=None, replyto=None, receivername=None, sendername=None):
def send_template_mail(sender, receiver, subject, templatename, templateattr={}, usergenerated=False, cc=None, replyto=None, receivername=None, sendername=None, messageid=None):
d = {
'link_root': settings.SITE_ROOT,
}
@ -16,7 +16,8 @@ def send_template_mail(sender, receiver, subject, templatename, templateattr={},
send_simple_mail(sender, receiver, subject,
template_to_string(templatename, d),
usergenerated=usergenerated, cc=cc, replyto=replyto,
receivername=receivername, sendername=sendername)
receivername=receivername, sendername=sendername,
messageid=messageid)
def get_client_ip(request):
"""