Dicas & truques: como evitar o filtro de spam do Gmail ao usar o Action Mailer do Ruby on Rails
Ficou claro, pelos nossos registros de suporte, que muitos profissionais de desenvolvimento usam o Action Mailer para enviar e-mails. Se você faz parte desse grupo, saiba que há um problema recorrente que fará com que seus e-mails sejam filtrados como spam pelo Gmail: uma message-ID malformada. Isso também pode ocorrer com outras bibliotecas, mas vemos esse problema principalmente com o Action Mailer.
Criamos nossa API REST para que você não precise se preocupar com esses detalhes técnicos (configuramos uma message-ID válida por padrão), mas entendemos que talvez você queira usar as ferramentas com as quais já tem familiaridade.
Se quiser usar o Action Mailer com o Mailgun, é muito fácil começar:
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"
}
O problema é que, se você não especificar a message-ID, o Action Mailer preencherá esse cabeçalho com um valor padrão que pode não ser uma message-ID válida. Além disso, se você estiver se conectando a uma retransmissão SMTP, essa message-ID provavelmente não refletirá o domínio que está realmente enviando o e-mail. Ela pode ser algo como “”.
O Gmail é muito rigoroso para garantir que a message-ID nos cabeçalhos MIME siga a RFC 2822e que o domínio na message-ID seja igual ao domínio de envio.
De acordo com a RFC, a message-ID deve ter o seguinte formato: “”
Há uma discussão no Stack Overflow sobre como configurar a message-ID no Rails. Confira o trecho de exemplo abaixo:
require 'digest/sha2'
class UserMailer "#{Digest::SHA2.hexdigest(Time.now.to_i.to_s)}@yourdomain.com"
# ... the rest of your mailer class
end
Portanto, não deixe de testar se a message-ID está configurada corretamente ou o Gmail enviará seus e-mails para o spam!
Bons envios!
Mailgunners