2011-08-10 18 views
16

Estoy tratando de crear un encabezado de correo electrónico personalizado para usar la API SendGrid.Cómo crear encabezados de correo electrónico personalizados

Esto es lo que estoy haciendo - pero no su trabajo:

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, Adam

Respuesta

44

puede utilizar el método de #headers ActionMailer, he editado su 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, se puede pasar un hash como un argumento (a los #headers método) también:

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

espero que esto le puede ayudar, y si no siempre se puede comprobar las guías de carriles: http://edgeguides.rubyonrails.org/action_mailer_basics.html.

+0

Gracias Ricardo - la respuesta estaba frente a mi cara. Lo intenté y lo hice funcionar. Luego publicaste lo que confirmó mi solución. Gracias de nuevo. – Northband

+0

¡Agradable! Gracias por la respuesta. –

+0

Esto no funcionó para mí. Ver mi respuesta! –

2

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

cabeceras [ 'X-SMTPAPI'] = '{ 'categoría': 'goteo Enviar'}'

3

estoy mediante el siguiente código y funciona bien, simplemente convertir el hash a JSON con to_json

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

para utilizar los grupos para darse de baja en la funcionalidad de grupo de supresión dentro de SendGrid, he utilizado la siguiente sintaxis que funcionaba.

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