Как создать собственные заголовки электронной почты

Я пытаюсь создать собственный заголовок электронной почты для использования API SendGrid.

Вот что я делаю, но это не работает:

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

Любая помощь приветствуется.

Спасибо, Адам


person Northband    schedule 10.08.2011    source источник


Ответы (4)


Вы можете использовать метод #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.

person Ricardo Valeriano    schedule 10.08.2011
comment
Спасибо Рикардо - ответ был перед моим лицом. Я пробовал это и заработал. Затем вы опубликовали, что подтвердило мое решение. Спасибо еще раз. - person Northband; 15.08.2011
comment
Ницца! Спасибо за ответ. - person Ricardo Valeriano; 23.08.2011

Я использую приведенный ниже код и отлично работает, просто преобразуйте хэш в json с помощью to_json

headers['X-SMTPAPI'] = { 
  category: "Weekly Newsletter",
  unique_args: { user_id: user.id } 
}.to_json
person overallduka    schedule 08.07.2016

Для метода заголовков требуется действительный JSON. Поэтому для решения Рикардо вместо этого требуется эта строка:

headers['X-SMTPAPI'] = '{"category": "Drip Email"}'

person Evan Moran    schedule 26.01.2012

Чтобы использовать группы отписки в функциях группы подавления в sendgrid, я использовал следующий синтаксис, который работал.

headers['X-SMTPAPI'] = '{"asm_group_id": 1111}'
person calilonghorn    schedule 11.01.2017