Include an In-Reply-To: <Message-ID of triggering e-mail>, if any, in the new_ticket notification

This commit is contained in:
наб 2020-07-17 15:19:25 +02:00 committed by Drew DeVault
parent d14758e1d8
commit 8a3c9b63b9
2 changed files with 8 additions and 4 deletions

View File

@ -106,7 +106,8 @@ class MailHandler:
print("Rejecting email due to validation errors")
return "550 " + ", ".join([e["reason"] for e in valid.errors])
ticket = submit_ticket(tracker, sender, title, desc, from_email=True)
ticket = submit_ticket(tracker, sender, title, desc,
from_email=True, from_email_id=mail["Message-ID"])
UserWebhook.deliver(UserWebhook.Events.ticket_create,
ticket.to_dict(),
UserWebhook.Subscription.user_id == sender.id)

View File

@ -433,7 +433,7 @@ def get_comment_counts(tickets):
.filter(col.in_([t.id for t in tickets]))
.group_by(col))
def _send_new_ticket_notification(subscription, ticket):
def _send_new_ticket_notification(subscription, ticket, email_trigger_id):
subject = f"{ticket.ref()}: {ticket.title}"
headers = {
"From": "{} <{}>".format(ticket.submitter.name, notify_from),
@ -441,11 +441,14 @@ def _send_new_ticket_notification(subscription, ticket):
"Reply-To": f"{ticket.ref()} <{ticket.ref(email=True)}@{posting_domain}>",
"Sender": smtp_user,
}
if email_trigger_id:
headers["In-Reply-To"] = email_trigger_id
notify(subscription, "new_ticket", subject,
headers=headers, ticket=ticket, ticket_url=ticket_url(ticket))
def submit_ticket(tracker, submitter, title, description, importing=False, from_email=False):
def submit_ticket(tracker, submitter, title, description,
importing=False, from_email=False, from_email_id=None):
ticket = Ticket(
submitter=submitter,
tracker=tracker,
@ -473,7 +476,7 @@ def submit_ticket(tracker, submitter, title, description, importing=False, from_
_create_event_notification(sub.participant, event)
# Notify submitter for tickets created by email
if from_email or sub.participant != submitter:
_send_new_ticket_notification(sub, ticket)
_send_new_ticket_notification(sub, ticket, from_email_id)
notified_users = [sub.participant for sub in tracker.subscriptions]
_handle_mentions(