Consejos y trucos: cómo evitar los filtros de spam de Gmail al usar Action Mailer de Ruby on Rails
Nuestros registros de asistencia revelan que una gran cantidad de profesionales del desarrollo utilizan Action Mailer para enviar emails. Si te encuentras en este grupo, debes saber que hay un problema recurrente que provoca que Gmail filtre tus emails como spam: un message-ID con formato incorrecto. Esto también puede ocurrir con otras bibliotecas, pero vemos este problema sobre todo con Action Mailer.
Creamos nuestra API REST para que no tengas que preocuparte por tecnicismos como este (configuramos un message-ID válido por defecto), pero entendemos que tal vez prefieras usar las herramientas con las que ya te has familiarizado.
Si quieres usar Action Mailer con Mailgun, empezar es muy sencillo:
config.action_mailer.delivery_method = :smtp
config.action_mailer.default_charset = "utf-8"
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.smtp_settings = {
:authentication => :plain,
:address => "smtp.mailgun.org",
:port => 587,
:domain => "my-mailgun-domain.com",
:user_name => "postmaster@my-mailgun-domain.com",
:password => "my-password"
}
El problema es que si no especificas el message-ID, Action Mailer rellena este encabezado con un valor por defecto que puede no ser un message-ID válido. Además, si te conectas a un servidor SMTP, es probable que ese message-ID no refleje el dominio que está enviando el email en realidad. Puede que indique algo como «».
Gmail es muy estricto al comprobar que el message-ID en los encabezados MIME cumple con RFC 2822y que el dominio en el message-ID sea el mismo que el dominio de envío.
Según el RFC, el message-ID debe tener el siguiente formato: «»
Hay un hilo en Stack Overflow sobre cómo configurar el message-ID en Rails. A continuación, puedes ver un fragmento de ejemplo:
require 'digest/sha2'
class UserMailer "#{Digest::SHA2.hexdigest(Time.now.to_i.to_s)}@yourdomain.com"
# ... the rest of your mailer class
end
Por lo tanto, comprueba que el message-ID se configure correctamente o Gmail marcará tus emails como spam.
Disfruta de tus envíos.
El equipo de Mailgun