2010-11-14 28 views
0

J'utilise ActionMailer dans Rails 3 pour envoyer des courriels périodiques. J'ai besoin de savoir si un email a été envoyé correctement (dans la mesure du possible).Comment tester si un mail a été envoyé avec succès en utilisant ActionMailer?

@lists.each do |list| 
    email = Reminder.deadline_reminder(list) 
    email.deliver 
    end 

Y at-il une propriété de l'objet e-mail (classe Mail :: message de la bibliothèque Mail) qui va me dire si l'envoi est allé correctement (pas de problèmes de connexion, problèmes d'authentification, etc.)? J'ai regardé les cours sur Github mais je n'ai pas réussi à comprendre quoi que ce soit.

Répondre

3

Tout dépend de ce que vous considérez comme réussi.

Vous pouvez tester pour voir si votre code a envoyé le message. Vous pouvez souvent vérifier le journal pour voir si l'hôte de transfert de courrier l'a reçu et l'a déplacé vers sa destination. Toutefois, seuls les systèmes de messagerie propriétaires prennent en charge les accusés de réception. SMTP ne le fait pas et ne le fera probablement jamais en raison de problèmes de confidentialité et de l'incapacité des fournisseurs de messagerie client à s'entendre sur la façon de le faire. Donc, même s'il est livré à destination, il n'y a aucun moyen de savoir si la personne l'a lu.

Votre meilleur pari est de mettre un lien dans le message que l'utilisateur clique qui va chatouiller une application sur le serveur avec un jeton qui était unique pour ce message. Lorsque l'application voit le jeton, elle met un drapeau pour vous informer qu'ils ont reçu le message ET au moins lire la partie sur le fait de cliquer sur le lien. Ensuite, s'il doit y avoir une réponse dans un délai donné, vous effectuez également un suivi lorsque le message a été envoyé et augmentez si le jeton n'a pas été reçu dans le délai imparti.

+0

Bonne idée. Vous pouvez suivre ouvre en ajoutant un très petit graphique à l'email. Quand ils ouvrent l'email, il serait téléchargé de votre serveur, et vous sauriez qu'ils ont ouvert votre email. C'est ainsi que les pistes MailChimp s'ouvrent. Ne fonctionne pas si les images ne sont pas activées. http://kb.mailchimp.com/article/how-open-tracking-works – corbin

+0

Correct, cela échoue si leur client de messagerie n'affiche pas les graphiques, ou l'utilisateur lui a demandé de ne pas charger les images, comme de nombreux mobiles et clients Web. –