Enviando notificação de registro pelo Gmail usando Rails 2.3
Digamos que você queira administrar melhor seu sistema e deseja receber no seu e-mail uma notificação a cada novo registro efetuado.
Comece um novo projeto.
rails notificar_registro cd notificar_registro/ script/generate scaffold Call title:string author:string description:text rake db:migrate
Antes de continuar, copie o código da lib smtp_tls e coloque ela na sua pasta ‘lib’. Como aqui eu estou enviando e-mail através do Gmail, preciso dessa lib para funcionar.
Agora abra o arquivo “config/environment.rb” e adicione esse código no final dele, depois do ultimo “end”
#ActionMailer::Base.raise_delivery_errors = true ActionMailer::Base.default_content_type = "text/html" ActionMailer::Base.smtp_settings = { :enable_starttls_auto => true, :address => "smtp.gmail.com", :port => 587, :authentication => :plain, :user_name => "seu_email@gmail.com", :password => 'sua_senha' }
Agora vamos criar nosso ActionMailer.
script/generate mailer Notification
No nosso model ‘notification’ vamos criar a função ‘notify’ para enviar os dados a view e que será chamada no controller ‘Calls’.
class Notification < ActionMailer::Base def notify(title, author, description) recipients "nome@dominio.com.br" #E-mail de quem ira receber a notificação from "seu_email@gmail.com" subject "Novo registro adcionado" body :call => { :title => title, :author => author, :description => description } end end
Em “view/notifications”, crie um arquivo chamado “notify.erb” e adicione o seguinte código.
<p> Chamada: <b><%= @call[:title] %></b> <br /> Autor: <b><%= @call[:author] %></b> <br /> Descrição: <b><%= @call[:description]%></b> </p>
Com o model e a view criada, já podemos disparar o e-mail quando uma nova chamada for adicionada. Va para o controller “Calls” e adicione o seguinte código.
# Adicione logo após flash[:notice] = 'Call was successfully created.' Notification.deliver_notify( @call.title, @call.author, @call.description )
Para quem quiser baixar, o source esta disponível no GitHub
Enviando notificação de registro pelo Gmail usando Rails 2.3Leave a Reply
Pingback
abr 16th 2010 • 03:04
by Tweets that mention Enviando notificação de registro pelo Gmail | :marciogm -- Topsy.com
[...] This post was mentioned on Twitter by Marcio. Marcio said: Enviando notificação de registro pelo Gmail usando Rails 2.3 http://bit.ly/aoX9O3 #new #post #soudev [...]
abr 20th 2010 • 12:04
by Claudio
Márcio, legal o post, só p/ alertar( nem precisa publicar este comentario), o source no git esta off(pelo menos o link nao existe e procurei em seus projetos no git e tbem nao achei.)
[]`s
abr 20th 2010 • 13:04
by marciogm
Obrigado Claudio!
já arrumei o link no GitHub, devo ter feito alguma coisa e deletado o Repositório.
mai 20th 2010 • 03:05
by Diego Roriz
Muito fácil! Funcionou bem tranquilo! =]
Onde posso ler mais sobre a documentação para tratar os retornos, etc?
mai 20th 2010 • 12:05
by marciogm
@Diego
Aqui tem toda documentação do ActionMailer
http://am.rubyonrails.org/
http://api.rubyonrails.org/classes/ActionMailer/Base.html
E para tratar erros, você pode ver a documentação da classe SMTP
http://ruby-doc.org/core/classes/Net/SMTP.html