mailee 0.4.2 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +41 -32
- data/VERSION +1 -1
- data/lib/mailee/action_mailer.rb +2 -2
- data/mailee.gemspec +2 -2
- metadata +4 -4
data/README.markdown
CHANGED
@@ -1,15 +1,18 @@
|
|
1
|
-
|
1
|
+
Mailee - Email marketing para quem entende de tecnologia.
|
2
2
|
==============
|
3
3
|
|
4
|
-
|
4
|
+
O problema
|
5
|
+
=
|
5
6
|
|
6
7
|
Você está desenvolvendo um sistema (e-commerce, cms, erp...) e o seu cliente solicita a possibilidade de enviar e-mails promocionais, ou notícias, para diversos contatos. Por experiência própria, você sabe que enviar e-mails não é coisa para _scriptkiddies_, e que, de fato, não vale a pena o esforço de desenvolver todo um sistema que faça o envio, garanta a entrega, analise os retornos e também apresente resultados de tudo isso. O problema é que os sistemas que você conhece não permitem uma integração fácil e rápida com seus sistemas em Rails...
|
7
8
|
|
8
|
-
|
9
|
+
A solução
|
10
|
+
=
|
9
11
|
|
10
12
|
Esta gem tem como objetivo manter os contatos da sua aplicação sincronizados com os contatos do Mailee (www.mailee.me) sem muito esforço. De fato, basta executar o método "sync_with_mailee" no seu modelo (clientes, contatos, pessoas...) que este irá automaticamente realizar as tarefas de inserir, atualizar, excluir e descadastrar via REST. No Mailee, seu cliente poderá então montar as mensagens e enviar para os contatos.
|
11
13
|
|
12
|
-
|
14
|
+
O que posso fazer com a gem?
|
15
|
+
=
|
13
16
|
|
14
17
|
* Simplesmente utilizar as classes do Mailee para:
|
15
18
|
* Criar, atualizar, buscar e excluir contatos.
|
@@ -21,51 +24,55 @@
|
|
21
24
|
* Integrar com ActiveRecord (com ou sem Rails) e fazer um modelo sincronizar automaticamente com o Mailee.me.
|
22
25
|
* Integrar com ActionMailer (com ou sem Rails) e fazer os mailers enviarem as mensagens pelo Mailee.me.
|
23
26
|
|
24
|
-
|
27
|
+
Instalação
|
28
|
+
=
|
25
29
|
|
26
30
|
* Adicione a seguinte linha ao seu Gemfile:
|
27
31
|
> gem 'mailee'
|
28
32
|
* E execute o bundle:
|
29
33
|
> bundle install
|
30
34
|
* Uma vez instalado, para configurar, execute:
|
31
|
-
>
|
35
|
+
> rails g mailee_rails:setup
|
32
36
|
|
33
37
|
Este comando irá solicitar sua URL da API e criar um initializer com toda a configuração necessária.
|
34
38
|
A URL da API você descobre entrando no Mailee e indo em Configurações > Integração > REST
|
35
39
|
|
36
40
|
Pronto!
|
37
41
|
|
38
|
-
|
42
|
+
Compatibilidade
|
43
|
+
=
|
39
44
|
|
40
45
|
Rails 3. 'Nuff said. Se você precisa de suporte aoRails 2, baixe a versão 0.1.0, mas ela possui muito menos funcionalidades do que a versão atual.
|
41
46
|
|
42
|
-
|
47
|
+
Uso
|
48
|
+
=
|
43
49
|
|
44
50
|
* Na mão (console)
|
45
51
|
|
46
52
|
Você pode usar a api do maile "na mão". Basta abrir o console e usar:
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
53
|
+
= code
|
54
|
+
ruby script/console
|
55
|
+
include Mailee
|
56
|
+
Contact.find(:all)
|
57
|
+
Contact.find(:first)
|
58
|
+
Contact.search('russell')
|
59
|
+
Contact.find_by_internal_id(789)
|
60
|
+
Contact.find_by_email('russell@cambridge.edu.uk')
|
61
|
+
Contact.create(:name => 'Bertrand Russell', :email => 'russell@cambridge.edu.uk')
|
62
|
+
Contact.create(:email => 'ludwig@wittgenstein.edu.uk', :dynamic_attributes => {:influence => 'Frege'})
|
63
|
+
List.find(:all)
|
64
|
+
List.find(:first)
|
65
|
+
List.create(:name => 'My List')
|
66
|
+
Template.find(:all)
|
67
|
+
Template.find(:first)
|
68
|
+
Template.create(:title => 'My Template', :html => File.read('mytemplate.html'))
|
69
|
+
# Message with HTML and list
|
70
|
+
message = Message.create :title => "Title", :subject => "Subject", :from_name => "Rorty", :from_email => "rorty@princeton.us", :html => File.read('myhtml.html'), :list_id => 987
|
71
|
+
# Message with emails and template (with edits & repeats)
|
72
|
+
message = Message.create :title => "Title", :subject => "Subject", :from_name => "Rorty", :from_email => "rorty@princeton.us", :template_id => 765, :edits => {:greeting => 'Hi Davidson!'}, :repeats => {:news => ['A good news', 'A bad news'], :emails => 'davidson@some.com davidson@another.com'}
|
73
|
+
message.test([44,55,66])
|
74
|
+
message.ready # send it now
|
75
|
+
message.ready(10.days.from_now)
|
69
76
|
|
70
77
|
* Com modelos (ActiveRecord)
|
71
78
|
|
@@ -149,10 +156,12 @@
|
|
149
156
|
> rake mailee:send CLASS=Contact AFTER=5.days.ago
|
150
157
|
Neste caso, ele vai apenas sincronizar os contatos que foram atualizados (baseado no campo "updated_at") nos últimos 5 dias.
|
151
158
|
|
152
|
-
|
159
|
+
Cuidado!
|
160
|
+
=
|
153
161
|
|
154
162
|
A gem utiliza a API REST do Mailee para enviar dados, por isto cuide bem da sua URL - se alguém descobrir isso pode ser ruim. Para saber qual o contato na sua aplicação a gem utiliza um campo disponível no Mailee chamado "internal_id" o qual recebe o "id" da sua tabela na criação. Este id é usado nas atualizações, descadastros e exclusões, então tome (ou avise seu cliente para tomar!) cuidado ao editar este campo na interface do Mailee.
|
155
163
|
|
156
|
-
|
164
|
+
Dúvidas?
|
165
|
+
=
|
157
166
|
|
158
167
|
Qualquer dúvida, não hesite em falar conosco pelo e-mail suporte@mailee.me, pelo twitter @maileeme ou pelo IRC #maileeme.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.3
|
data/lib/mailee/action_mailer.rb
CHANGED
@@ -30,7 +30,7 @@ module Mailee
|
|
30
30
|
from_name = mail.header['from'].to_s.scan(/(.+?) <.+?>$/).to_s
|
31
31
|
message = Mailee::Message.create :title => mail.subject, :subject => mail.subject, :from_name => from_name, :from_email => mail.from.first, :emails => mail.to.join(' '), :html => mail.body.to_s
|
32
32
|
result = message.ready(mail.date)
|
33
|
-
mail.instance_eval{ self.class.send('attr_accessor', :mailee_message); self.mailee_message =
|
33
|
+
mail.instance_eval{ self.class.send('attr_accessor', :mailee_message); self.mailee_message = message }
|
34
34
|
self
|
35
35
|
end
|
36
36
|
end
|
@@ -49,4 +49,4 @@ module Mailee
|
|
49
49
|
|
50
50
|
end
|
51
51
|
end
|
52
|
-
ActionMailer::Base.send(:include, Mailee::Send)
|
52
|
+
ActionMailer::Base.send(:include, Mailee::Send)
|
data/mailee.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{mailee}
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Juan Maiz"]
|
12
|
-
s.date = %q{2010-10-
|
12
|
+
s.date = %q{2010-10-16}
|
13
13
|
s.description = %q{Permite sincronizar automaticamente seus modelos com o Mailee.me, inclusive com gerenciamento de optin.}
|
14
14
|
s.email = %q{suporte@mailee.me}
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mailee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 3
|
10
|
+
version: 0.4.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Juan Maiz
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-10-
|
18
|
+
date: 2010-10-16 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|