Esta pode ser uma pergunta idiota, mas quando estou montando um e-mail HTML no Rails, há uma maneira integrada particularmente fácil de visualizar o modelo no navegador ou preciso escrever algum tipo de controlador personalizado que o extraia em como sua visão?
ruby-on-rails
email
Peter Nixey
fonte
fonte
Respostas:
Action Mailer agora possui uma forma embutida de visualizar emails no Rails 4.1 . Por exemplo, verifique isto:
fonte
spec/mailers/previews
A resposta de Daniel é um bom começo, mas se seus modelos de email contiverem dados dinâmicos, não funcionará. Por exemplo, suponha que seu e-mail seja um recibo de pedido e dentro dele você imprima
@order.total_price
- usando o método anterior, a@order
variável será nula.Aqui está uma pequena receita que uso:
Primeiro, como essa funcionalidade de visualização de e-mail é definitivamente para uso interno, configurei algumas rotas genéricas no namespace do administrador:
Em seguida, crio o controlador. Neste controlador, eu crio um método por modelo de email. Como a maioria dos e-mails contém dados dinâmicos, precisamos preencher quaisquer variáveis de membro que o modelo espera.
Isso poderia ser feito com acessórios, mas geralmente prefiro apenas obter alguns dados reais pseudo-aleatórios. Lembre-se - este NÃO é um teste de unidade - é puramente um auxílio ao desenvolvimento. Ele não precisa produzir o mesmo resultado todas as vezes - na verdade - provavelmente é melhor se não produzir!
Observe que quando renderizamos o modelo, usamos
layout=>:mailer
. Isso incorpora o corpo do seu e-mail dentro do layout de e-mail HTML que você criou, em vez de dentro do layout típico de seu aplicativo da web (por exemploapplication.html.erb
).E é basicamente isso. Agora posso visitar http://example.com/admin/mailer/preview_welcome para visualizar a alteração em meu modelo de e-mail de boas-vindas.
fonte
get 'mailer...
agora em vez dematch
.37Signals também tem sua própria gem de teste de email chamada mail_view . É fantástico.
fonte
A configuração mais fácil que vi é MailCatcher . A instalação demorou 2 minutos e funciona para novos remetentes prontos para uso.
fonte
Eu uso email_preview . De uma chance.
fonte
Recentemente, escrevi uma gema chamada Maily para visualizar, editar (arquivo de modelo) e entregar os e-mails do aplicativo por meio de um navegador. Ele também fornece uma maneira amigável de conectar dados, um sistema de autorização flexível e uma IU minimalista.
Planejei adicionar novos recursos em um futuro próximo, como:
Espero que possa ajudá-lo.
fonte
Você pode usar o Rails Email Preview
REP é um mecanismo rails para visualizar e testar o envio de e-mails, com suporte I18n, fácil integração com pré-mailer e edição CMS opcional com comfortable_mexican_sofa .
fonte
rails
gera uma visualização de email se você usarrails g mailer CustomMailer
. Você receberá um arquivoCustomMailerPreview
dentrospec/mailers/previews
pasta.Aqui você pode escrever seu método que irá chamar o mailer e irá gerar uma prévia.
Para ex -
Visualize todos os e-mails em http: // localhost: 3000 / rails / mailers / custom_mailer
fonte
config.action_mailer.preview_path = "#{Rails.root}/spec/mailers/previews"
O Rails Email Preview nos ajuda a visualizar rapidamente o e-mail no navegador da web em modo de desenvolvimento.
1) Adicionar
“gem ‘rails_email_preview’, ‘~> 0.2.29’ “
ao arquivo gem e instale o pacote.2) Executar
“rails g rails_email_preview:install”
este inicializador de cria na pasta de configuração e adicione rotas.3) Execute
“rails g rails_email_preview:update_previews”
esta pasta crates mailer_previews no diretório do aplicativo.O Generator adicionará um esboço a cada um de seus e-mails e, em seguida, preencherá o esboço com dados simulados.
Ex:
4) Os parâmetros na consulta de pesquisa estarão disponíveis como uma variável de instância para a classe de visualização. Ex: se tivermos uma URL como
“/emails/user_mailer_preview-welcome?user_id=1”
@user_id
está definida no método de boas-vindasUserMailerPreview
isso nos ajuda a enviar e-mail para um usuário específico.5) Para acessar URLs REP assim
6) Podemos enviar e-mails via REP, que usará as configurações do mailer do ambiente. Remova o comentário dessa linha no inicializador para desativar o envio de e-mail no ambiente de teste.
Fonte: RailsCarma Blog: Visualização de e-mails em aplicativos Rails com a gema Mail_View
fonte
Estou surpreso que ninguém mencionou letter_opener . É uma joia que renderiza e abre emails como uma página do navegador sempre que um email é entregue no dev.
fonte
Não há como visualizar diretamente do Mailer. Mas como você escreveu, você pode escrever um controlador, que se parece com isso.
Mas eu acho que essa não é a melhor maneira de testar e-mails, se parecerem corretamente.
fonte
render "#{params[:mailer]}_mailer/#{params[:method]}", :layout => 'mailer'
irá incorporar o corpo do e-mail dentro do layout de e-mail HTML que você criou para o seu aplicativo.Eu prefiro a gem mails_viewer . Esta gema é bastante útil, pois salva o modelo HTML na pasta tmp.
fonte