FIX: use metadata to hold the message_id with sparkpost

This commit is contained in:
Régis Hanol 2016-10-27 19:35:50 +02:00
parent 407cda1dfe
commit 71f940d478
3 changed files with 7 additions and 3 deletions

View File

@ -91,7 +91,7 @@ class WebhooksController < ActionController::Base
def sparkpost
events = params["_json"] || [params]
events.each do |event|
message_id = event["msys"]["message_event"]["message_id"] rescue nil
message_id = event["msys"]["message_event"]["rcpt_meta"]["message_id"] rescue nil
bounce_class = event["msys"]["message_event"]["bounce_class"] rescue nil
next unless message_id && bounce_class

View File

@ -133,12 +133,14 @@ module Email
@message.header['X-Discourse-Post-Id'] = nil if post_id.present?
@message.header['X-Discourse-Reply-Key'] = nil if reply_key.present?
# pass the original message_id when using mailjet/mandrill
# pass the original message_id when using mailjet/mandrill/sparkpost
case ActionMailer::Base.smtp_settings[:address]
when /\.mailjet\.com/
@message.header['X-MJ-CustomID'] = @message.message_id
when "smtp.mandrillapp.com"
@message.header['X-MC-Metadata'] = { message_id: @message.message_id }.to_json
when "smtp.sparkpostmail.com"
@message.header['X-MSYS-API'] = { metadata: { message_id: @message.message_id } }.to_json
end
# Suppress images from short emails

View File

@ -109,7 +109,9 @@ describe WebhooksController do
"msys" => {
"message_event" => {
"bounce_class" => 10,
"message_id" => message_id
"rcpt_meta" => {
"message_id" => message_id
}
}
}
}]