Conseils et astuces : éviter le filtrage du spam par Gmail avec Ruby on Rails Action Mailer
Nos historiques de support montrent clairement que de nombreuses équipes de développement utilisent Action Mailer pour envoyer des emails. Si vous en faites partie, sachez qu’un problème récurrent risque d’entraîner le filtrage de vos emails comme spam par Gmail : un message-ID mal formé. Cela peut également se produire avec d’autres bibliothèques, mais nous constatons ce problème principalement avec Action Mailer.
Nous avons créé notre API REST pour que vous n’ayez pas à vous soucier de ces détails techniques (nous définissons un message-ID valide par défaut), mais nous comprenons que vous souhaitiez utiliser les outils que vous connaissez déjà.
Si vous souhaitez utiliser Action Mailer avec Mailgun, il est très facile de commencer :
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"
}
Le problème est que si vous ne spécifiez pas le message-ID, Action Mailer remplit cet en-tête avec une valeur par défaut qui n’est pas forcément un message-ID valide. De plus, si vous vous connectez à un relais SMTP, ce message-ID ne reflète probablement pas le domaine qui envoie réellement l’email. Il peut indiquer quelque chose comme « ».
Gmail vérifie très strictement que le message-ID dans les en-têtes MIME respecte RFC 2822et que le domaine dans le message-ID est identique au domaine d’envoi.
Selon la RFC, le message-ID doit avoir le format suivant : « »
Il existe un fil de discussion sur Stack Overflow sur la façon de définir le message-ID dans Rails, voir l’extrait ci-dessous :
require 'digest/sha2'
class UserMailer "#{Digest::SHA2.hexdigest(Time.now.to_i.to_s)}@yourdomain.com"
# ... the rest of your mailer class
end
Assurez-vous donc de vérifier que le message-ID est correctement défini, sinon Gmail considérera vos emails comme du spam !
Bons envois !
L’équipe Mailgun