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 .