Cela peut être une question stupide, mais lorsque je mets en place un e-mail HTML dans Rails, existe-t-il un moyen intégré particulièrement simple de prévisualiser le modèle dans le navigateur ou dois-je écrire une sorte de contrôleur personnalisé qui le tire en tant que son point de vue?
ruby-on-rails
email
Peter Nixey
la source
la source
Réponses:
Action Mailer dispose désormais d'un moyen intégré de prévisualiser les e-mails dans Rails 4.1 . Par exemple, vérifiez ceci:
la source
spec/mailers/previews
La réponse de Daniel est un bon début, mais si vos modèles de courrier électronique contiennent des données dynamiques, cela ne fonctionnera pas. Par exemple, supposons que votre e-mail soit un reçu de commande et que vous y imprimiez
@order.total_price
- en utilisant la méthode précédente, la@order
variable sera nulle.Voici une petite recette que j'utilise:
Tout d'abord, puisque cette fonctionnalité de prévisualisation des e-mails est définitivement à usage interne uniquement, j'ai configuré des routes génériques dans l'espace de noms admin:
Ensuite, je crée le contrôleur. Dans ce contrôleur, je crée une méthode par modèle d'e-mail. Étant donné que la plupart des e-mails contiennent des données dynamiques, nous devons renseigner les variables membres attendues par le modèle.
Cela pourrait être fait avec des appareils, mais je préfère généralement récupérer des données réelles pseudo-aléatoires. N'oubliez pas - ce n'est PAS un test unitaire - c'est purement une aide au développement. Il n'a pas besoin de produire le même résultat à chaque fois - en fait, c'est probablement mieux si ce n'est pas le cas!
Notez que lorsque nous rendons le modèle, nous utilisons
layout=>:mailer
. Cela intègre le corps de votre e-mail dans la mise en page HTML que vous avez créée au lieu de l'intérieur de la mise en page typique de votre application Web (par exempleapplication.html.erb
).Et c'est à peu près tout. Je peux maintenant visiter http://example.com/admin/mailer/preview_welcome pour prévisualiser les modifications apportées à mon modèle d'e-mail de bienvenue.
la source
get 'mailer...
maintenant au lieu dematch
.37Signals possède également son propre gem de test de messagerie appelé mail_view . C'est assez fantastique.
la source
La configuration la plus simple que j'ai vue est MailCatcher . L'installation a pris 2 minutes et fonctionne pour les nouveaux expéditeurs prêts à l'emploi.
la source
J'utilise email_preview . Essaie.
la source
J'ai récemment écrit un joyau nommé Maily pour prévisualiser, éditer (fichier modèle) et envoyer les e-mails de l'application via un navigateur. Il fournit également un moyen convivial de raccorder des données, un système d'autorisation flexible et une interface utilisateur minimaliste.
J'ai prévu d'ajouter de nouvelles fonctionnalités dans un proche avenir, comme:
J'espère que cela peut vous aider.
la source
Vous pouvez utiliser Rails Email Preview
REP est un moteur rails aux e - mails de prévisualisation et envoi de test, avec le soutien de I18n, l' intégration de premailer facile et CMS en option d' édition avec comfortable_mexican_sofa .
la source
rails
génère un aperçu du courrier si vous utilisezrails g mailer CustomMailer
. Vous obtiendrez un fichierCustomMailerPreview
dans lespec/mailers/previews
dossier.Ici, vous pouvez écrire votre méthode qui appellera le mailer et générera un aperçu.
Pour ex -
Prévisualisez tous les e-mails sur http: // localhost: 3000 / rails / mailers / custom_mailer
la source
config.action_mailer.preview_path = "#{Rails.root}/spec/mailers/previews"
Rails Email Preview nous aide à visualiser rapidement l'e-mail dans le navigateur Web en mode développement.
1) Ajouter
“gem ‘rails_email_preview’, ‘~> 0.2.29’ “
au fichier gem et installer l'ensemble.2) Courir
“rails g rails_email_preview:install”
ceci crée un initialiseur dans le dossier de configuration et ajoutez des routes.3) Exécutez
“rails g rails_email_preview:update_previews”
ce dossier crates mailer_previews dans le répertoire de l'application.Generator ajoutera un stub à chacun de vos e-mails, puis vous remplissez le stub avec des données factices.
Ex:
4) Les paramètres de la requête de recherche seront disponibles en tant que variable d'instance pour prévisualiser la classe. Ex: si nous avons une URL telle que
“/emails/user_mailer_preview-welcome?user_id=1”
@user_id
définie dans la méthode de bienvenue,UserMailerPreview
cela nous aide à envoyer du courrier à un utilisateur spécifique.5) Pour accéder aux URL de REP comme celle-ci
6) Nous pouvons envoyer des e-mails via REP, cela utilisera les paramètres d'environnement de messagerie. Décommentez cette ligne dans l'initialiseur pour désactiver l'envoi de courrier dans l'environnement de test.
Source: Blog RailsCarma: Aperçu des e-mails dans les applications Rails avec la gemme Mail_View
la source
Je suis surpris que personne n'ait mentionné letter_opener . C'est un joyau qui rendra et ouvrira les e-mails en tant que page de navigateur chaque fois qu'un e-mail est livré en dev.
la source
Il n'y a aucun moyen de le prévisualiser directement à partir du Mailer. Mais comme vous l'avez écrit, vous pouvez écrire un contrôleur, qui ressemble à quelque chose comme ça.
Mais je pense que ce n'est pas la meilleure façon de tester les e-mails, s'ils semblent corrects.
la source
render "#{params[:mailer]}_mailer/#{params[:method]}", :layout => 'mailer'
intégrera le corps de l'e-mail dans la mise en page HTML que vous avez créée pour votre application.Je préfère la gemme mails_viewer . Ce joyau est très utile car il enregistre le modèle HTML dans le dossier tmp.
la source