10
votes

Comment voir les vues e-mail dans le navigateur à l'aide de rails

Je travaille sur des e-mails pour l'application de mes rails. À l'heure actuelle, la seule façon dont je sais voir l'e-mail consiste à me l'envoyer. Comment obtenir "Daily_summary.html.haml", qui figure dans le dossier "Notifications" sous le dossier "Vues", pour rendre dans le navigateur? Je pensais que je devais juste ajouter la route: xxx

mais je ne sais pas comment gérer le contrôleur / la partie d'action des choses.


4 Réponses :


1
votes

Je jetterais un coup d'oeil à ActionMailer_extensions . ActionMailer Ecrivez des courriels sortants sur le disque comme fichiers .eml. Cela pourrait suffire à vos besoins (il suffit de configurer un script pour regarder le répertoire de sortie pour les nouveaux fichiers et ouvrez-les dans votre client de messagerie préféré), ou vous pouvez rechercher le gemme et la modifier directement (sa source est morte simple) à écrire .html fichiers et ouvrez-les dans votre navigateur.

espère que cela aide!


0 commentaires

10
votes

Il y a une gemme appelée lettre ouverte qui sonne comme ça va faire exactement ce que vous recherchez. Il prévisible les messages électroniques dans le navigateur plutôt que de les envoyer. Je ne l'ai pas utilisé moi-même. Si cela fonctionne, j'aimerais entendre parler de ça, bien que!

https://github.com/ryanb/letter_opener

Il y a un autre appelé Mail Viewer, mais il n'a pas été activement développé dans un certain temps. Probablement mieux pour diriger clairement:

https://github.com/37Signals/mail_view


7 commentaires

L'ouvre-lettre semble fonctionner. La seule chose est que cela ouvre les versions «plaine.html» de l'e-mail au lieu des versions «Rich.html» (la plaine semble correspondre à la version texte de mon email et à la version riche en version HTML). Une idée de la façon dont je pourrais changer cela?


Il semble que, dans le bloc Livrer , vous pouvez spécifier à la fois un bloc text_part bloc et un bloc html_parart bloc. Et vous devez définir content_type sur 'text / html' dans le bloc HTML_PART. Voir si cela fonctionne.


Je suis un peu ignorant ici. . Où voyez-vous ces blocs et où puis-je définir le contenu_type?


Oui, les docs sont un peu clairsemés. Jetez un coup d'œil aux tests RSPEC dans le repo-GitHub Repo: Github. com / ryanb / lettre_opener / blob / maître / spécifique / lettre_opene r / ... . Le deuxième test a un exemple de ce que vous essayez de faire, je pense.


J'utilise l'ouvre-lettre pour vérifier les courriels localement. Cependant, je ne peux vérifier que les courriels envoyés à l'utilisateur, je ne peux pas voir la copie de la messagerie de l'utilisateur CC. Une idée de ce que pourrait être la raison?


@Murthy, si je comprends bien, vous souhaitez vérifier que les utilisateurs CC -ED reçoivent également le message? C'est en dehors de la portée de l'ouvre-lettre, à mon avis. Vous devriez écrire un test pour cela à la place.


C'est ce que je voulais savoir. Je m'attendais à ouvrir plus de fenêtres affichant localement les courriels pour tous les utilisateurs CC -ED. Merci Tom. Appréciez ça :)



13
votes

Depuis les rails 4.1, l'aperçu de l'e-mail est indigène. Tout ce que vous avez à faire est de créer une classe dans ce répertoire: xxx pré>

la classe doit prolonger actemailer :: Aperçu code> p>

http://localhost:3000/rails/mailers/weekly_report/weekly_report


1 commentaires

Pour que toute personne se retrouve ici - j'ai été suivie sur le fait que de nombreuses références créant des aperçus dans des tests / mailers, etc. Toutefois, si vous avez des tests dans SPE SPEC / Mailers ... Sinon travaille un traitement!



1
votes

Pour les rails 3 Il existe maintenant un gemme, mail_view code>, qui était inclus dans Rails 4.1. Voici un lien vers Configuration . C'est assez facile.

1.) Ajouter au gemfile: P>

 # app/mailers/mail_preview.rb or lib/mail_preview.rb
class MailPreview < MailView
...
 def forgot_password
   user = Struct.new(:email, :name).new('name@example.com', 'Jill Smith')
   mail = UserMailer.forgot_password(user)
 end
end


0 commentaires