Mais em Mailee.me: Recursos | Preços | Cadastro

Integração com Ruby on Rails

O Mailee possui uma Gem para integração com aplicações Ruby on Rails, já atualizada para Rails 3. O código dela você pode encontrar no GitHub e a Gem está disponível no RubyGems.org. O código deste tutorial também está disponível no GitHub e um versão online dele no Heroku, para que você possa testar antes de pôr a mão na massa.

Esta Gem utiliza a API REST do Mailee. Além dela, existem integrações para Spree, PHP e C#.

Esta integração ainda usa a versão antiga da nossa API, e está sendo descontinuada. Você pode conferir a versão nova, mais moderna e com mais recursos, aqui. Durante este período de migração, você ainda pode usar esta versão da API.

1 Criando uma aplicação Rails 3

Se você já fez o café de hoje, ótimo, podemos iniciar nosso tutorial. Primeiro você deve instalar o Rails 3. Para fazê-lo, basta executar:

$ gem install rails

Qualquer dúvida, acesse a documentação oficial.

Agora vamos criar a aplicação. Abra seu console, e execute:

$ rails new mailee-example create create README create Rakefile create config.ru ... $ cd mailee-example

2 Instalando a Gem

Pronto, a sua aplicação está criada. O Rails 3 utiliza um sistema chamado Bundler para gerenciamento das Gems. Talvez seja interessante dar uma estudada neste excelente sistema antes de utilizá-lo, para entender bem o conceito. Mas é bem, simples: edite o arquivo Gemfile que está na raiz da aplicação “mailee-example” e adicione a gem “mailee”, na versão “0.1.0”:

source 'http://rubygems.org' gem 'rails', '3.2.0' ... gem 'mailee'

Agora, dentro da pasta do projeto, vamos executar o bundler, para que a Gem do Mailee seja instalada:

$ bundle install Fetching source index from http://rubygems.org/ Using rake (0.8.7) from system gems Using abstract (1.0.0) from system gems Using activesupport (3.0.0.beta4) from system gems ...

3 Criando um cadastro de clientes

Agora vamos criar um cadastro de clientes usando um scaffold simples:

$ rails g scaffold Client name:string email:string news:boolean invoke active_record create db/migrate/20100728183215_create_clients.rb create app/models/client.rb ...

E executar a migração no banco:

$ rake db:migrate

O que nós precisamos é que estes clientes sejam sincronizados com Mailee. Ou seja, ao cadastrar um cliente, que tenha marcado “news”, este contato deve ir para o Mailee automaticamente. Se o contato for excluido, ou desmarcar este campo, ele deve desaparecer do Mailee.

Para fazer isto, precisamos fazer duas coisas. A primeira é configurar nossa chave de acesso à API e a segunda é modificar nosso modelo. Vamos lá.

3.1 A chave de acesso

Para usar a API o Mailee gera uma chave secreta para cada cliente. Tome muito cuidade com esta chave, ela é tão ou mais importante que a sua senha. Com ela, alguém mal intencionado poderá ter acesso aos seus clientes. Para pegar esta chave, vá em configuração, depois em integração e por fim em rest.

Integrar

REST

Copie a chave, e execute o seguinte comando na sua app:

rails g mailee_rails:setup

Cole a chave e voilà, ele vai criar um initializer (config/initializers/mailee.rb) com este conteúdo:

Mailee::Config.site = 'http://api.01295d232df4b.gem.mailee.me'

A chave que usei é de uma conta de teste. Se você não quiser criar uma conta nova no Mailee, pode usar ela para testes a vontade :D

3.2 Modificando o modelo

Para que o nosso modelo Client saiba que ele deve sincronizar os dados com o Mailee, basta abrí-lo e adicionar o método “sync_with_mailee”. Assim:

class Client < ActiveRecord::Base sync_with_mailee end

Para finalizar, vou adicionar uma rota root para o index do controle que criamos, remover o public/index.html e iniciar o server:

MaileeExample::Application.routes.draw do |map| resources :clients root to: "clients#index" end
$ rm public/index.html $ rails s => Booting WEBrick => Rails 3.0.0.beta4 application starting in development on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server [2010-07-28 15:51:41] INFO WEBrick 1.3.1 [2010-07-28 15:51:41] INFO ruby 1.8.7 (2010-01-10) [i486-linux] [2010-07-28 15:51:46] INFO WEBrick::HTTPServer#start: pid=9666 port=3000 ...

E vamos abrir nosso navegador em localhost:3000. Agora você pode cadastrar clientes e verificar se eles estão no Mailee.

Criando os clientes na sua aplicação local

E vendo eles no Mailee

4 More stuff

Há mais coisas que a Gem é capaz de fazer, como por exemplo, definir colunas diferentes para sincronização (caso você não use name, email ou news, por exemplo) ou enviar lotes de informações em comandos rake. Para saber mais, acesse a documentação do projeto no GitHub ou contate o nosso pessoal.