Как создать пользовательские заголовки электронной почты
Я пытаюсь создать собственный заголовок электронной почты для использования sendGrid api.
Вот что я делаю - но его не работает:
class Mailman < ActionMailer::Base
default :from => "[email protected]"
def send_message(name, email, message)
@name = name
@email = email
@message = message
mail(:to => '[email protected]',
:from => email,
:subject => "Message from the site",
:headers['X-SMTPAPI'] => "category: Drip Email"
)
end
end
Любая помощь была оценена.
Спасибо,
Адам
Ответы
Ответ 1
вы можете использовать метод #headers ActionMailer, я отредактировал ваш пример, чтобы показать, как:
class Mailman < ActionMailer::Base
default :from => "[email protected]"
def send_message(name, email, message)
@name = name
@email = email
@message = message
headers['X-SMTPAPI'] = '{"category": "Drip Email"}'
mail(:to => '[email protected]',
:from => email,
:subject => "Message from the site"
)
end
end
Кроме того, вы можете передать хэш в качестве аргумента (для метода #headers):
headers {"SPECIFIC-HEADER-1" => "value", "ANOTHER-HEADER" => "and so..."}
Я надеюсь, что это может вам помочь, и если вы не всегда можете проверить направляющие рельсов: http://edgeguides.rubyonrails.org/action_mailer_basics.html.
Ответ 2
Я использую код ниже и отлично работает, просто преобразуйте хэш в json с помощью to_json
headers['X-SMTPAPI'] = {
category: "Weekly Newsletter",
unique_args: { user_id: user.id }
}.to_json
Ответ 3
Метод заголовков требует действительного JSON. Поэтому для решения Ricardo требуется эта строка:
заголовки ['X-SMTPAPI'] = '{ "category": "Drip Email" }'
Ответ 4
Чтобы использовать группы отписки в группе групп подавления в sendgrid, я использовал следующий синтаксис, который работал.
headers['X-SMTPAPI'] = '{"asm_group_id": 1111}'