Programação, diversão e arte. Por Ricardo Giaviti
Posts tagged Ruby e Rails
Usando o Gmail para enviar e-mail com o ActionMailer no Rails
Feb 15th
Existe uma maneira muito fácil de se enviar e-mails no Rails e usando o Gmail. Nesse pequeno tutorial tentarei explicar como fazer isso funcionar.
Primeiramente é preciso saber que o Gmail utiliza para autenticação de protocolo SMTP (envio de e-mails) o ssl/tls. Essa forma de autenticação não é suportada nativamente pelo ActionMailer. Isso quer dizer que precisaremos de uma ajudinha para podermos enviar e-mails utilizando o Rails e o Gmail.
Essa ajudinha é uma biblioteca que está voando pela Internet (eu não sei quem é o autor e muito menos da onde ela saiu) e nos ajudará com a autenticação. Eu tenho uma cópia dessa biblioteca em meu GitHub, você pode pegá-la aqui.
Com a biblioteca em mãos copie ela para a pasta lib do seu projeto Rails. Provavelmente ficará assim o caminho:
/lib/smtp_tls.rb
Agora abra o arquivo config/environment.rb e lá no fim, bem lá no fim mesmo, adicione o seguinte trecho de código:
ActionMailer::Base.default_content_type = "text/html" ActionMailer::Base.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :authentication => :plain, :user_name => "seuemail@gmail.com", #Você pode usar o Google Apps! :password => 'suasenha' }
Bacana. Está tudo configurado. Agora vamos ver como se fazer no ActionMailer para se enviar um e-mail. Vamos gerar um novo Mailer. Em seu console digite:
ruby script/generate mailer Notificador
Seu novo mailer será gerado. Após a geração, abra ele (app/models/notificador.rb)
Adicione o seguinte método:
def notificar recipients "destinatario@email.com" from "meumail@meuemail.com" subject "Titulo do Email" end
Agora você precisa adicionar uma view com o mesmo nome desse método, assim como se faz com os Controllers. Nese caso, a vew ficaria views/teste/notificar.erb
Nesse arquivo ficará tudo o que você quer enviar ao destinatório. É o corpo do e-mail mesmo. Você pode utilizar variáveis de instância caso queira passar alguma informação para a view, da mesma forma que é feito nos controllers.
Criada a view, basta chamar o mailer nos controllerspara enviar o email da seguinte forma:
Notificador.deliver_notificarRepare que é colocado um deliver_ ali antes do nome do método que setamos. Isso é normal.
Se tudo ocorrer bem seu e-mail será enviado. Porém enviando um e-mail dessa forma irá ter um tempo de request mais demorado.
Obtendo Hash MD5 e SHA com Rails
Feb 14th
Para se obter hashs tanto MD5 como SHA com Rails é muito fácil. Abaixo segue o que eu faço para calcular os Hashs:
def md5(str) return Digest::MD5.hexdigest(str) end def sha1(str) return Digest::SHA1.hexdigest(str) end def sha256(str) return Digest::SHA256.hexdigest(str) end
Você pode ver no exemplo acima que coloquei três funções. Uma para MD5, outra para SHA1 e outra para SHA256. Mas existem outros ainda. Veja:
- Digest::SHA1.hexdigest() – Produz 40 caracteres de dígitos hexadecimais.
- Digest::SHA256.hexdigest() – Produz 64 caracteres de dígitos hexadecimais.
- Digest::SHA384.hexdigest() – Produz 96caracteres de dígitos hexadecimais.
- Digest::SHA512.hexdigest() – Produz 128 caracteres de dígitos hexadecimais.
Se quiser, você pode testar essas funções no console do Rils. Basta abrir o console:
ruby script/consoleDigite o comando:
strHash = Digest::SHA1.hexdigest("string")
A saída deverá ser:
=> "ecb252044b5ea0f679ee78ec1a12904739e2904d"
Fácil e simples.
Rails Summit Latin America
Aug 10th
Fala galera! Já faz um tempinho que não posto pois o trabalho está corrido. Vamos ver se daqui para frente volto apostar com mais frequência, tá difícil, mas vou tentar!
Bom, volto com esse post para divulgar o maior evento sobre Ruby on rails da América Latina que vai acontecer aqui no Brsil. Em São Paulo. É o Rails Summit Latin America. O evento promete e os palestrantes são de altíssimo nível. Mas muito alto mesmo, o próprio DHH, criador do framework, irá palestrar.
No blog do Akita há muitas informações sobre o evento, veja mais detalhes aqui:
A Locaweb está partocinando o evento e você pode fazer sua inscrição aqui:
No mesmo site da inscrição contém os valores, os palestrantes, o local… Tudo sobre o evento.
Eu já fiz a minha incrição e estarei lá com certeza. Você já fez a sua?






Recent Comments