rails plan log ruby-on-rails sendgrid

ruby on rails - plan - Cómo crear encabezados de correo electrónico personalizados



sendgrid documentation (4)

Estoy intentando crear un encabezado de correo electrónico personalizado para usar la API de SendGrid.

Esto es lo que estoy haciendo, pero no funciona:

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

Cualquier ayuda apreciada.

Gracias adan


El método de encabezados requiere JSON válido. Así que la solución de Ricardo requiere esta línea en su lugar:

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


Estoy usando el siguiente código y funciona bien, simplemente convierta el hash a json con to_json

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


Para usar los grupos de cancelación de suscripción en la funcionalidad de grupo de supresión dentro de sendgrid, usé la siguiente sintaxis que funcionó.

headers[''X-SMTPAPI''] = ''{"asm_group_id": 1111}''


Puedes usar el método #headers de ActionMailer, he editado tu ejemplo para mostrar cómo:

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

Alternativamente, también puede pasar un hash como argumento (al método #headers):

headers {"SPECIFIC-HEADER-1" => "value", "ANOTHER-HEADER" => "and so..."}

Espero que esto pueda ayudarte, y si no, siempre puedes consultar las guías de rieles: http://edgeguides.rubyonrails.org/action_mailer_basics.html .