mail_spy 0.0.11 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/mail_spy/manager.rb +20 -12
- data/lib/mail_spy/thread_pool.rb +119 -0
- data/lib/mail_spy/version.rb +1 -1
- data/lib/mail_spy.rb +1 -0
- data/test/dummy/log/test.log +525 -0
- metadata +3 -2
data/lib/mail_spy/manager.rb
CHANGED
@@ -70,9 +70,10 @@ module MailSpy
|
|
70
70
|
# ------------------------------------------- SEND OUTSTANDING EMAILS
|
71
71
|
# Batches through all the emails that were scheduled and have come due
|
72
72
|
# sends them out (step many at a time)
|
73
|
-
def send_outstanding_emails(step=100)
|
73
|
+
def send_outstanding_emails(step=100, num_threads=50)
|
74
74
|
raise "No Email service providers installed" unless MailSpy.esps.present?
|
75
75
|
|
76
|
+
pool = MailSpy::ThreadPool.new(num_threads)
|
76
77
|
offset = 0
|
77
78
|
sent = 0
|
78
79
|
|
@@ -83,28 +84,35 @@ module MailSpy
|
|
83
84
|
pony_hash[pony_key] = value if value.present?
|
84
85
|
end
|
85
86
|
|
87
|
+
|
86
88
|
while true
|
87
89
|
emails = MailSpy::Email.
|
88
90
|
limit(step).offset(offset).
|
89
91
|
where(:schedule_at.lte => DateTime.now, :sent => false, :failed => false).all
|
90
92
|
break if emails.blank?
|
91
93
|
emails.each do |email|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
94
|
+
pool.schedule do
|
95
|
+
begin
|
96
|
+
MailSpy::CoreMailer.template(email).deliver
|
97
|
+
email.update_attribute(:sent, true)
|
98
|
+
sent += 1
|
99
|
+
rescue Exception => e
|
100
|
+
email.failed = true
|
101
|
+
email.error_message = e.try(:message)
|
102
|
+
email.error_backtrace = e.try(:backtrace)
|
103
|
+
email.save!
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
while(pool.job_queue_size > (2 * num_threads))
|
108
|
+
sleep(1)
|
103
109
|
end
|
110
|
+
|
104
111
|
end
|
105
112
|
offset += step
|
106
113
|
end
|
107
114
|
|
115
|
+
pool.shutdown
|
108
116
|
sent
|
109
117
|
end
|
110
118
|
|
@@ -0,0 +1,119 @@
|
|
1
|
+
# Ruby Thread ThreadPool
|
2
|
+
# ================
|
3
|
+
# A thread pool is useful when you wish to do some work in a thread, but do
|
4
|
+
# not know how much work you will be doing in advance. Spawning one thread
|
5
|
+
# for each task is potentially expensive, as threads are not free.
|
6
|
+
#
|
7
|
+
# In this case, it might be more beneficial to start a predefined set of
|
8
|
+
# threads and then hand off work to them as it becomes available. This is
|
9
|
+
# the pure essence of what a thread pool is: an array of threads, all just
|
10
|
+
# waiting to do some work for you!
|
11
|
+
#
|
12
|
+
# Prerequisites
|
13
|
+
# -------------
|
14
|
+
|
15
|
+
# We need the [Queue](http://rdoc.info/stdlib/thread/1.9.2/Queue), as our
|
16
|
+
# thread pool is largely dependent on it. Thanks to this, the implementation
|
17
|
+
# becomes very simple!
|
18
|
+
require 'thread'
|
19
|
+
|
20
|
+
module MailSpy
|
21
|
+
# Public Interface
|
22
|
+
# ----------------
|
23
|
+
|
24
|
+
# `ThreadPool` is our thread pool class. It will allow us to do three operations:
|
25
|
+
#
|
26
|
+
# - `.new(size)` creates a thread pool of a given size
|
27
|
+
# - `#schedule(*args, &job)` schedules a new job to be executed
|
28
|
+
# - `#shutdown` shuts down all threads (after letting them finish working, of course)
|
29
|
+
class ThreadPool
|
30
|
+
|
31
|
+
# ### initialization, or `ThreadPool.new(size)`
|
32
|
+
# Creating a new `ThreadPool` involves a certain amount of work. First, however,
|
33
|
+
# we need to define its’ `size`. It defines how many threads we will have
|
34
|
+
# working internally.
|
35
|
+
#
|
36
|
+
# Which size is best for you is hard to answer. You do not want it to be
|
37
|
+
# too low, as then you won’t be able to do as many things concurrently.
|
38
|
+
# However, if you make it too high Ruby will spend too much time switching
|
39
|
+
# between threads, and that will also degrade performance!
|
40
|
+
def initialize(size)
|
41
|
+
# Before we do anything else, we need to store some information about
|
42
|
+
# our pool. `@size` is useful later, when we want to shut our pool down,
|
43
|
+
# and `@jobs` is the heart of our pool that allows us to schedule work.
|
44
|
+
@size = size
|
45
|
+
@jobs = Queue.new
|
46
|
+
|
47
|
+
# #### Creating our pool of threads
|
48
|
+
# Once preparation is done, it’s time to create our pool of threads.
|
49
|
+
# Each thread store its’ index in a thread-local variable, in case we
|
50
|
+
# need to know which thread a job is executing in later on.
|
51
|
+
@pool = Array.new(@size) do |i|
|
52
|
+
Thread.new do
|
53
|
+
Thread.current[:id] = i
|
54
|
+
|
55
|
+
# We start off by defining a `catch` around our worker loop. This
|
56
|
+
# way we’ve provided a method for graceful shutdown of our threads.
|
57
|
+
# Shutting down is merely a `#schedule { throw :exit }` away!
|
58
|
+
catch(:exit) do
|
59
|
+
# The worker thread life-cycle is very simple. We continuously wait
|
60
|
+
# for tasks to be put into our job `Queue`. If the `Queue` is empty,
|
61
|
+
# we will wait until it’s not.
|
62
|
+
loop do
|
63
|
+
# Once we have a piece of work to be done, we will pull out the
|
64
|
+
# information we need and get to work.
|
65
|
+
job, args = @jobs.pop
|
66
|
+
job.call(*args)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def job_queue_size
|
74
|
+
@jobs.size
|
75
|
+
end
|
76
|
+
|
77
|
+
# ### Work scheduling
|
78
|
+
|
79
|
+
# To schedule a piece of work to be done is to say to the `ThreadPool` that you
|
80
|
+
# want something done.
|
81
|
+
def schedule(*args, &block)
|
82
|
+
# Your given task will not be run immediately; rather, it will be put
|
83
|
+
# into the work `Queue` and executed once a thread is ready to work.
|
84
|
+
@jobs << [block, args]
|
85
|
+
end
|
86
|
+
|
87
|
+
# ### Graceful shutdown
|
88
|
+
|
89
|
+
# If you ever wish to close down your application, I took the liberty of
|
90
|
+
# making it easy for you to wait for any currently executing jobs to finish
|
91
|
+
# before you exit.
|
92
|
+
def shutdown
|
93
|
+
# A graceful shutdown involves threads exiting cleanly themselves, and
|
94
|
+
# since we’ve defined a `catch`-handler around the threads’ worker loop
|
95
|
+
# it is simply a matter of throwing `:exit`. Thus, if we throw one `:exit`
|
96
|
+
# for each thread in our pool, they will all exit eventually!
|
97
|
+
@size.times do
|
98
|
+
schedule { throw :exit }
|
99
|
+
end
|
100
|
+
|
101
|
+
# And now one final thing: wait for our `throw :exit` jobs to be run on
|
102
|
+
# all our worker threads. This call will not return until all worker threads
|
103
|
+
# have exited.
|
104
|
+
@pool.map(&:join)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
# example
|
109
|
+
#if $0 == __FILE__
|
110
|
+
# p = Pool.new(10)
|
111
|
+
#
|
112
|
+
# 20.times do |i|
|
113
|
+
# p.schedule do
|
114
|
+
# sleep rand(4) + 2
|
115
|
+
# puts "Job #{i} finished by thread #{Thread.current[:id]}"
|
116
|
+
# end
|
117
|
+
# end
|
118
|
+
# at_exit { p.shutdown }
|
119
|
+
#end
|
data/lib/mail_spy/version.rb
CHANGED
data/lib/mail_spy.rb
CHANGED
data/test/dummy/log/test.log
CHANGED
@@ -13070,3 +13070,528 @@ MONGODB dummy_test['mail_spy_emails'].remove({})
|
|
13070
13070
|
[1m[35m (0.1ms)[0m rollback transaction
|
13071
13071
|
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
13072
13072
|
[1m[35m (0.0ms)[0m rollback transaction
|
13073
|
+
MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
|
13074
|
+
MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
|
13075
|
+
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
13076
|
+
MONGODB dummy_test['system.namespaces'].find({})
|
13077
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e1661ba12eb016d000001'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:40:48 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:40:49 UTC, "created_at"=>2012-02-05 05:40:49 UTC}])
|
13078
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e1661ba12eb016d000001')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e1661ba12eb016d000001\"}}"}}})
|
13079
|
+
[AWS S3 200 0.818152] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
|
13080
|
+
|
13081
|
+
[AWS S3 200 0.097626] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.text.erb")
|
13082
|
+
|
13083
|
+
[AWS S3 200 0.114406] get_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.text.erb")
|
13084
|
+
|
13085
|
+
Rendered inline template (34.3ms)
|
13086
|
+
[AWS S3 200 0.094098] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
|
13087
|
+
|
13088
|
+
[AWS S3 200 0.095562] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.html.erb")
|
13089
|
+
|
13090
|
+
[AWS S3 200 0.138449] get_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.html.erb")
|
13091
|
+
|
13092
|
+
Rendered inline template (2.4ms)
|
13093
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13094
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13095
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13096
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
13097
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e1665ba12eb016d000002'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:40:53 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:40:53 UTC, "created_at"=>2012-02-05 05:40:53 UTC}])
|
13098
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e1665ba12eb016d000002')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e1665ba12eb016d000002\"}}"}}})
|
13099
|
+
MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
|
13100
|
+
Rendered inline template (2.3ms)
|
13101
|
+
Rendered inline template (1.6ms)
|
13102
|
+
|
13103
|
+
Sent mail to trcarden@gmail.com (4540ms)
|
13104
|
+
Date: Sat, 04 Feb 2012 21:40:53 -0800
|
13105
|
+
From: test@test.com
|
13106
|
+
Reply-To: testGuy
|
13107
|
+
To: trcarden@gmail.com
|
13108
|
+
Message-ID: <4f2e166597938_16d80434f4c37152@toms-iphone-4.mail>
|
13109
|
+
Subject: test subject
|
13110
|
+
Mime-Version: 1.0
|
13111
|
+
Content-Type: multipart/alternative;
|
13112
|
+
boundary="--==_mimepart_4f2e16655d983_16d80434f4c36877";
|
13113
|
+
charset=UTF-8
|
13114
|
+
Content-Transfer-Encoding: 7bit
|
13115
|
+
X-SMTPAPI: {"unique_args": {"eid": "4f2e1665ba12eb016d000002"}}
|
13116
|
+
|
13117
|
+
|
13118
|
+
|
13119
|
+
----==_mimepart_4f2e16655d983_16d80434f4c36877
|
13120
|
+
Date: Sat, 04 Feb 2012 21:40:53 -0800
|
13121
|
+
Mime-Version: 1.0
|
13122
|
+
Content-Type: text/plain;
|
13123
|
+
charset=UTF-8
|
13124
|
+
Content-Transfer-Encoding: 7bit
|
13125
|
+
Content-ID: <4f2e1665843a5_16d80434f4c3698d@toms-iphone-4.mail>
|
13126
|
+
|
13127
|
+
You should be able to click on the link and have the server record the even
|
13128
|
+
and forward you to the correct place.
|
13129
|
+
|
13130
|
+
A link : <a href="http://localhost:5000/mail/t?eid=4f2e1665ba12eb016d000002&n=1&url=www.google.com">My home</a>
|
13131
|
+
---------------------------
|
13132
|
+
|
13133
|
+
You should be able to show images in the email client and have the server
|
13134
|
+
track the open
|
13135
|
+
A Bug is in the parenthesis (<img src='http://localhost:5000/mail/b?eid=4f2e1665ba12eb016d000002' style='display:none' width='1' height='1' border='0' />)
|
13136
|
+
|
13137
|
+
|
13138
|
+
|
13139
|
+
|
13140
|
+
----==_mimepart_4f2e16655d983_16d80434f4c36877
|
13141
|
+
Date: Sat, 04 Feb 2012 21:40:53 -0800
|
13142
|
+
Mime-Version: 1.0
|
13143
|
+
Content-Type: text/html;
|
13144
|
+
charset=UTF-8
|
13145
|
+
Content-Transfer-Encoding: 7bit
|
13146
|
+
Content-ID: <4f2e166591611_16d80434f4c3703b@toms-iphone-4.mail>
|
13147
|
+
|
13148
|
+
<p>
|
13149
|
+
You should be able to click on the link and have the server record the even
|
13150
|
+
and forward you to the correct place.
|
13151
|
+
|
13152
|
+
A link : <a href="http://localhost:5000/mail/t?eid=4f2e1665ba12eb016d000002&n=1&url=www.google.com">My home</a>
|
13153
|
+
</p>
|
13154
|
+
|
13155
|
+
<br>
|
13156
|
+
|
13157
|
+
<p>
|
13158
|
+
You should be able to show images in the email client and have the server
|
13159
|
+
track the open
|
13160
|
+
A Bug is in the parenthesis (<img src='http://localhost:5000/mail/b?eid=4f2e1665ba12eb016d000002' style='display:none' width='1' height='1' border='0' />)
|
13161
|
+
</p>
|
13162
|
+
|
13163
|
+
|
13164
|
+
|
13165
|
+
----==_mimepart_4f2e16655d983_16d80434f4c36877--
|
13166
|
+
|
13167
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13168
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13169
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13170
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13171
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13172
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13173
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13174
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13175
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13176
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13177
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e1669ba12eb016d000003'), "to"=>"test@test.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"test campaign", "stream"=>"test stream", "component"=>"test component", "schedule_at"=>2012-02-05 05:40:57 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"test campaign", "utm_term"=>"test stream", "utm_content"=>"test component", "updated_at"=>2012-02-05 05:40:57 UTC, "created_at"=>2012-02-05 05:40:57 UTC}])
|
13178
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e1669ba12eb016d000003')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e1669ba12eb016d000003\"}}"}}})
|
13179
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13180
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13181
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13182
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13183
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13184
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13185
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13186
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13187
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13188
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13189
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13190
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13191
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13192
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
13193
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13194
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13195
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e1669ba12eb016d000004'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:40:57 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:40:57 UTC, "created_at"=>2012-02-05 05:40:57 UTC}])
|
13196
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e1669ba12eb016d000004')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e1669ba12eb016d000004\"}}"}}})
|
13197
|
+
MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
|
13198
|
+
Processing by MailSpy::TrackingController#action as HTML
|
13199
|
+
Parameters: {"eid"=>"4f2e1669ba12eb016d000004", "action_type"=>"Conversion", "count"=>"3"}
|
13200
|
+
MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f2e1669ba12eb016d000004')}).limit(-1).sort([[:_id, :asc]])
|
13201
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e1669ba12eb016d000004')}, {"$push"=>{"actions"=>{"count"=>3, "_id"=>BSON::ObjectId('4f2e166aba12eb016d000005'), "action_type"=>"Conversion", "updated_at"=>2012-02-05 05:40:58 UTC, "created_at"=>2012-02-05 05:40:58 UTC}}})
|
13202
|
+
Completed 200 OK in 4ms (ActiveRecord: 0.0ms)
|
13203
|
+
MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f2e1669ba12eb016d000004')}).limit(-1)
|
13204
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13205
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13206
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13207
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13208
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13209
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13210
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e166aba12eb016d000006'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:40:58 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:40:58 UTC, "created_at"=>2012-02-05 05:40:58 UTC}])
|
13211
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e166aba12eb016d000006')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e166aba12eb016d000006\"}}"}}})
|
13212
|
+
MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
|
13213
|
+
Processing by MailSpy::TrackingController#bug as HTML
|
13214
|
+
Parameters: {"eid"=>"4f2e166aba12eb016d000006"}
|
13215
|
+
MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f2e166aba12eb016d000006')}).limit(-1).sort([[:_id, :asc]])
|
13216
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e166aba12eb016d000006')}, {"$push"=>{"actions"=>{"count"=>1, "_id"=>BSON::ObjectId('4f2e166aba12eb016d000007'), "action_type"=>"open", "updated_at"=>2012-02-05 05:40:58 UTC, "created_at"=>2012-02-05 05:40:58 UTC}}})
|
13217
|
+
Completed 200 OK in 3ms (ActiveRecord: 0.0ms)
|
13218
|
+
MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f2e166aba12eb016d000006')}).limit(-1)
|
13219
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13220
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13221
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13222
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13223
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13224
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13225
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e166aba12eb016d000008'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:40:58 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:40:58 UTC, "created_at"=>2012-02-05 05:40:58 UTC}])
|
13226
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e166aba12eb016d000008')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e166aba12eb016d000008\"}}"}}})
|
13227
|
+
MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
|
13228
|
+
Processing by MailSpy::TrackingController#link as HTML
|
13229
|
+
Parameters: {"eid"=>"4f2e166aba12eb016d000008", "url"=>"http://google.com", "n"=>"0"}
|
13230
|
+
MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f2e166aba12eb016d000008')}).limit(-1).sort([[:_id, :asc]])
|
13231
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e166aba12eb016d000008')}, {"$push"=>{"actions"=>{"count"=>1, "_id"=>BSON::ObjectId('4f2e166aba12eb016d000009'), "action_type"=>"click", "details"=>{:url=>"http://google.com", :link_number=>"0"}, "updated_at"=>2012-02-05 05:40:58 UTC, "created_at"=>2012-02-05 05:40:58 UTC}}})
|
13232
|
+
Redirected to http://google.com?utm_campaign=tests&utm_content=a-helper_test&utm_medium=email&utm_source=mailspy&utm_term=a-stream
|
13233
|
+
Completed 302 Found in 3ms (ActiveRecord: 0.0ms)
|
13234
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13235
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13236
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13237
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13238
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13239
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13240
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e166aba12eb016d00000a'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:40:58 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:40:58 UTC, "created_at"=>2012-02-05 05:40:58 UTC}])
|
13241
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e166aba12eb016d00000a')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e166aba12eb016d00000a\"}}"}}})
|
13242
|
+
MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
|
13243
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13244
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13245
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13246
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13247
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13248
|
+
MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
|
13249
|
+
MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
|
13250
|
+
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
13251
|
+
MONGODB dummy_test['system.namespaces'].find({})
|
13252
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e1687ba12eb0173000001'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:41:27 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:41:27 UTC, "created_at"=>2012-02-05 05:41:27 UTC}])
|
13253
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e1687ba12eb0173000001')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e1687ba12eb0173000001\"}}"}}})
|
13254
|
+
[AWS S3 200 0.412159] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
|
13255
|
+
|
13256
|
+
[AWS S3 200 0.098070] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.text.erb")
|
13257
|
+
|
13258
|
+
[AWS S3 200 0.102749] get_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.text.erb")
|
13259
|
+
|
13260
|
+
Rendered inline template (22.7ms)
|
13261
|
+
[AWS S3 200 0.093799] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
|
13262
|
+
|
13263
|
+
[AWS S3 200 0.098474] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.html.erb")
|
13264
|
+
|
13265
|
+
[AWS S3 200 0.118800] get_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.html.erb")
|
13266
|
+
|
13267
|
+
Rendered inline template (1.6ms)
|
13268
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13269
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13270
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13271
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13272
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e168bba12eb0173000002'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:41:31 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:41:31 UTC, "created_at"=>2012-02-05 05:41:31 UTC}])
|
13273
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e168bba12eb0173000002')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e168bba12eb0173000002\"}}"}}})
|
13274
|
+
MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
|
13275
|
+
Rendered inline template (1.5ms)
|
13276
|
+
Rendered inline template (1.3ms)
|
13277
|
+
|
13278
|
+
Sent mail to trcarden@gmail.com (1360ms)
|
13279
|
+
Date: Sat, 04 Feb 2012 21:41:31 -0800
|
13280
|
+
From: test@test.com
|
13281
|
+
Reply-To: testGuy
|
13282
|
+
To: trcarden@gmail.com
|
13283
|
+
Message-ID: <4f2e168b31304_17380434f4c9277c@toms-iphone-4.mail>
|
13284
|
+
Subject: test subject
|
13285
|
+
Mime-Version: 1.0
|
13286
|
+
Content-Type: multipart/alternative;
|
13287
|
+
boundary="--==_mimepart_4f2e168b8e97_17380434f4c924ae";
|
13288
|
+
charset=UTF-8
|
13289
|
+
Content-Transfer-Encoding: 7bit
|
13290
|
+
X-SMTPAPI: {"unique_args": {"eid": "4f2e168bba12eb0173000002"}}
|
13291
|
+
|
13292
|
+
|
13293
|
+
|
13294
|
+
----==_mimepart_4f2e168b8e97_17380434f4c924ae
|
13295
|
+
Date: Sat, 04 Feb 2012 21:41:31 -0800
|
13296
|
+
Mime-Version: 1.0
|
13297
|
+
Content-Type: text/plain;
|
13298
|
+
charset=UTF-8
|
13299
|
+
Content-Transfer-Encoding: 7bit
|
13300
|
+
Content-ID: <4f2e168b23eeb_17380434f4c92518@toms-iphone-4.mail>
|
13301
|
+
|
13302
|
+
You should be able to click on the link and have the server record the even
|
13303
|
+
and forward you to the correct place.
|
13304
|
+
|
13305
|
+
A link : <a href="http://localhost:5000/mail/t?eid=4f2e168bba12eb0173000002&n=1&url=www.google.com">My home</a>
|
13306
|
+
---------------------------
|
13307
|
+
|
13308
|
+
You should be able to show images in the email client and have the server
|
13309
|
+
track the open
|
13310
|
+
A Bug is in the parenthesis (<img src='http://localhost:5000/mail/b?eid=4f2e168bba12eb0173000002' style='display:none' width='1' height='1' border='0' />)
|
13311
|
+
|
13312
|
+
|
13313
|
+
|
13314
|
+
|
13315
|
+
----==_mimepart_4f2e168b8e97_17380434f4c924ae
|
13316
|
+
Date: Sat, 04 Feb 2012 21:41:31 -0800
|
13317
|
+
Mime-Version: 1.0
|
13318
|
+
Content-Type: text/html;
|
13319
|
+
charset=UTF-8
|
13320
|
+
Content-Transfer-Encoding: 7bit
|
13321
|
+
Content-ID: <4f2e168b2c3d0_17380434f4c92698@toms-iphone-4.mail>
|
13322
|
+
|
13323
|
+
<p>
|
13324
|
+
You should be able to click on the link and have the server record the even
|
13325
|
+
and forward you to the correct place.
|
13326
|
+
|
13327
|
+
A link : <a href="http://localhost:5000/mail/t?eid=4f2e168bba12eb0173000002&n=1&url=www.google.com">My home</a>
|
13328
|
+
</p>
|
13329
|
+
|
13330
|
+
<br>
|
13331
|
+
|
13332
|
+
<p>
|
13333
|
+
You should be able to show images in the email client and have the server
|
13334
|
+
track the open
|
13335
|
+
A Bug is in the parenthesis (<img src='http://localhost:5000/mail/b?eid=4f2e168bba12eb0173000002' style='display:none' width='1' height='1' border='0' />)
|
13336
|
+
</p>
|
13337
|
+
|
13338
|
+
|
13339
|
+
|
13340
|
+
----==_mimepart_4f2e168b8e97_17380434f4c924ae--
|
13341
|
+
|
13342
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13343
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13344
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13345
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13346
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13347
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13348
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13349
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13350
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13351
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13352
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e168cba12eb0173000003'), "to"=>"test@test.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"test campaign", "stream"=>"test stream", "component"=>"test component", "schedule_at"=>2012-02-05 05:41:32 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"test campaign", "utm_term"=>"test stream", "utm_content"=>"test component", "updated_at"=>2012-02-05 05:41:32 UTC, "created_at"=>2012-02-05 05:41:32 UTC}])
|
13353
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e168cba12eb0173000003')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e168cba12eb0173000003\"}}"}}})
|
13354
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13355
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13356
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13357
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13358
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13359
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13360
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13361
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13362
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13363
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13364
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13365
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13366
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13367
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
13368
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13369
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13370
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e168cba12eb0173000004'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:41:32 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:41:32 UTC, "created_at"=>2012-02-05 05:41:32 UTC}])
|
13371
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e168cba12eb0173000004')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e168cba12eb0173000004\"}}"}}})
|
13372
|
+
MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
|
13373
|
+
Processing by MailSpy::TrackingController#action as HTML
|
13374
|
+
Parameters: {"eid"=>"4f2e168cba12eb0173000004", "action_type"=>"Conversion", "count"=>"3"}
|
13375
|
+
MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f2e168cba12eb0173000004')}).limit(-1).sort([[:_id, :asc]])
|
13376
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e168cba12eb0173000004')}, {"$push"=>{"actions"=>{"count"=>3, "_id"=>BSON::ObjectId('4f2e168cba12eb0173000005'), "action_type"=>"Conversion", "updated_at"=>2012-02-05 05:41:32 UTC, "created_at"=>2012-02-05 05:41:32 UTC}}})
|
13377
|
+
Completed 200 OK in 5ms (ActiveRecord: 0.0ms)
|
13378
|
+
MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f2e168cba12eb0173000004')}).limit(-1)
|
13379
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13380
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13381
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13382
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13383
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13384
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13385
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e168cba12eb0173000006'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:41:32 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:41:32 UTC, "created_at"=>2012-02-05 05:41:32 UTC}])
|
13386
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e168cba12eb0173000006')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e168cba12eb0173000006\"}}"}}})
|
13387
|
+
MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
|
13388
|
+
Processing by MailSpy::TrackingController#bug as HTML
|
13389
|
+
Parameters: {"eid"=>"4f2e168cba12eb0173000006"}
|
13390
|
+
MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f2e168cba12eb0173000006')}).limit(-1).sort([[:_id, :asc]])
|
13391
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e168cba12eb0173000006')}, {"$push"=>{"actions"=>{"count"=>1, "_id"=>BSON::ObjectId('4f2e168cba12eb0173000007'), "action_type"=>"open", "updated_at"=>2012-02-05 05:41:32 UTC, "created_at"=>2012-02-05 05:41:32 UTC}}})
|
13392
|
+
Completed 200 OK in 3ms (ActiveRecord: 0.0ms)
|
13393
|
+
MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f2e168cba12eb0173000006')}).limit(-1)
|
13394
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13395
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13396
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13397
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13398
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13399
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13400
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e168cba12eb0173000008'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:41:32 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:41:32 UTC, "created_at"=>2012-02-05 05:41:32 UTC}])
|
13401
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e168cba12eb0173000008')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e168cba12eb0173000008\"}}"}}})
|
13402
|
+
MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
|
13403
|
+
Processing by MailSpy::TrackingController#link as HTML
|
13404
|
+
Parameters: {"eid"=>"4f2e168cba12eb0173000008", "url"=>"http://google.com", "n"=>"0"}
|
13405
|
+
MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f2e168cba12eb0173000008')}).limit(-1).sort([[:_id, :asc]])
|
13406
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e168cba12eb0173000008')}, {"$push"=>{"actions"=>{"count"=>1, "_id"=>BSON::ObjectId('4f2e168cba12eb0173000009'), "action_type"=>"click", "details"=>{:url=>"http://google.com", :link_number=>"0"}, "updated_at"=>2012-02-05 05:41:32 UTC, "created_at"=>2012-02-05 05:41:32 UTC}}})
|
13407
|
+
Redirected to http://google.com?utm_campaign=tests&utm_content=a-helper_test&utm_medium=email&utm_source=mailspy&utm_term=a-stream
|
13408
|
+
Completed 302 Found in 3ms (ActiveRecord: 0.0ms)
|
13409
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13410
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13411
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13412
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13413
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13414
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13415
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e168cba12eb017300000a'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:41:32 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:41:32 UTC, "created_at"=>2012-02-05 05:41:32 UTC}])
|
13416
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e168cba12eb017300000a')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e168cba12eb017300000a\"}}"}}})
|
13417
|
+
MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
|
13418
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13419
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13420
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13421
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13422
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13423
|
+
MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
|
13424
|
+
MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
|
13425
|
+
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
13426
|
+
MONGODB dummy_test['system.namespaces'].find({})
|
13427
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e16d1ba12eb017f000001'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:42:41 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:42:41 UTC, "created_at"=>2012-02-05 05:42:41 UTC}])
|
13428
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e16d1ba12eb017f000001')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e16d1ba12eb017f000001\"}}"}}})
|
13429
|
+
[AWS S3 200 0.461392] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
|
13430
|
+
|
13431
|
+
[AWS S3 200 0.102523] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.text.erb")
|
13432
|
+
|
13433
|
+
[AWS S3 200 0.126795] get_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.text.erb")
|
13434
|
+
|
13435
|
+
Rendered inline template (27.6ms)
|
13436
|
+
[AWS S3 200 0.096139] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
|
13437
|
+
|
13438
|
+
[AWS S3 200 0.098424] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.html.erb")
|
13439
|
+
|
13440
|
+
[AWS S3 200 0.118032] get_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.html.erb")
|
13441
|
+
|
13442
|
+
Rendered inline template (1.6ms)
|
13443
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13444
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13445
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13446
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13447
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e16d4ba12eb017f000002'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:42:44 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:42:44 UTC, "created_at"=>2012-02-05 05:42:44 UTC}])
|
13448
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e16d4ba12eb017f000002')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e16d4ba12eb017f000002\"}}"}}})
|
13449
|
+
MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
|
13450
|
+
Rendered inline template (1.5ms)
|
13451
|
+
Rendered inline template (1.2ms)
|
13452
|
+
|
13453
|
+
Sent mail to trcarden@gmail.com (959ms)
|
13454
|
+
Date: Sat, 04 Feb 2012 21:42:44 -0800
|
13455
|
+
From: test@test.com
|
13456
|
+
Reply-To: testGuy
|
13457
|
+
To: trcarden@gmail.com
|
13458
|
+
Message-ID: <4f2e16d4d1445_17f80434f4c409da@toms-iphone-4.mail>
|
13459
|
+
Subject: test subject
|
13460
|
+
Mime-Version: 1.0
|
13461
|
+
Content-Type: multipart/alternative;
|
13462
|
+
boundary="--==_mimepart_4f2e16d4a8fd4_17f80434f4c40683";
|
13463
|
+
charset=UTF-8
|
13464
|
+
Content-Transfer-Encoding: 7bit
|
13465
|
+
X-SMTPAPI: {"unique_args": {"eid": "4f2e16d4ba12eb017f000002"}}
|
13466
|
+
|
13467
|
+
|
13468
|
+
|
13469
|
+
----==_mimepart_4f2e16d4a8fd4_17f80434f4c40683
|
13470
|
+
Date: Sat, 04 Feb 2012 21:42:44 -0800
|
13471
|
+
Mime-Version: 1.0
|
13472
|
+
Content-Type: text/plain;
|
13473
|
+
charset=UTF-8
|
13474
|
+
Content-Transfer-Encoding: 7bit
|
13475
|
+
Content-ID: <4f2e16d4c4237_17f80434f4c4071c@toms-iphone-4.mail>
|
13476
|
+
|
13477
|
+
You should be able to click on the link and have the server record the even
|
13478
|
+
and forward you to the correct place.
|
13479
|
+
|
13480
|
+
A link : <a href="http://localhost:5000/mail/t?eid=4f2e16d4ba12eb017f000002&n=1&url=www.google.com">My home</a>
|
13481
|
+
---------------------------
|
13482
|
+
|
13483
|
+
You should be able to show images in the email client and have the server
|
13484
|
+
track the open
|
13485
|
+
A Bug is in the parenthesis (<img src='http://localhost:5000/mail/b?eid=4f2e16d4ba12eb017f000002' style='display:none' width='1' height='1' border='0' />)
|
13486
|
+
|
13487
|
+
|
13488
|
+
|
13489
|
+
|
13490
|
+
----==_mimepart_4f2e16d4a8fd4_17f80434f4c40683
|
13491
|
+
Date: Sat, 04 Feb 2012 21:42:44 -0800
|
13492
|
+
Mime-Version: 1.0
|
13493
|
+
Content-Type: text/html;
|
13494
|
+
charset=UTF-8
|
13495
|
+
Content-Transfer-Encoding: 7bit
|
13496
|
+
Content-ID: <4f2e16d4cc741_17f80434f4c408e4@toms-iphone-4.mail>
|
13497
|
+
|
13498
|
+
<p>
|
13499
|
+
You should be able to click on the link and have the server record the even
|
13500
|
+
and forward you to the correct place.
|
13501
|
+
|
13502
|
+
A link : <a href="http://localhost:5000/mail/t?eid=4f2e16d4ba12eb017f000002&n=1&url=www.google.com">My home</a>
|
13503
|
+
</p>
|
13504
|
+
|
13505
|
+
<br>
|
13506
|
+
|
13507
|
+
<p>
|
13508
|
+
You should be able to show images in the email client and have the server
|
13509
|
+
track the open
|
13510
|
+
A Bug is in the parenthesis (<img src='http://localhost:5000/mail/b?eid=4f2e16d4ba12eb017f000002' style='display:none' width='1' height='1' border='0' />)
|
13511
|
+
</p>
|
13512
|
+
|
13513
|
+
|
13514
|
+
|
13515
|
+
----==_mimepart_4f2e16d4a8fd4_17f80434f4c40683--
|
13516
|
+
|
13517
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13518
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13519
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13520
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13521
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13522
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13523
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13524
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13525
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13526
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13527
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e16d5ba12eb017f000003'), "to"=>"test@test.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"test campaign", "stream"=>"test stream", "component"=>"test component", "schedule_at"=>2012-02-05 05:42:45 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"test campaign", "utm_term"=>"test stream", "utm_content"=>"test component", "updated_at"=>2012-02-05 05:42:45 UTC, "created_at"=>2012-02-05 05:42:45 UTC}])
|
13528
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e16d5ba12eb017f000003')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e16d5ba12eb017f000003\"}}"}}})
|
13529
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13530
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13531
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13532
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13533
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13534
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13535
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13536
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13537
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13538
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13539
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13540
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13541
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13542
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
13543
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13544
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13545
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e16d5ba12eb017f000004'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:42:45 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:42:45 UTC, "created_at"=>2012-02-05 05:42:45 UTC}])
|
13546
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e16d5ba12eb017f000004')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e16d5ba12eb017f000004\"}}"}}})
|
13547
|
+
MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
|
13548
|
+
Processing by MailSpy::TrackingController#action as HTML
|
13549
|
+
Parameters: {"eid"=>"4f2e16d5ba12eb017f000004", "action_type"=>"Conversion", "count"=>"3"}
|
13550
|
+
MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f2e16d5ba12eb017f000004')}).limit(-1).sort([[:_id, :asc]])
|
13551
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e16d5ba12eb017f000004')}, {"$push"=>{"actions"=>{"count"=>3, "_id"=>BSON::ObjectId('4f2e16d5ba12eb017f000005'), "action_type"=>"Conversion", "updated_at"=>2012-02-05 05:42:45 UTC, "created_at"=>2012-02-05 05:42:45 UTC}}})
|
13552
|
+
Completed 200 OK in 4ms (ActiveRecord: 0.0ms)
|
13553
|
+
MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f2e16d5ba12eb017f000004')}).limit(-1)
|
13554
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13555
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13556
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13557
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13558
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13559
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13560
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e16d5ba12eb017f000006'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:42:45 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:42:45 UTC, "created_at"=>2012-02-05 05:42:45 UTC}])
|
13561
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e16d5ba12eb017f000006')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e16d5ba12eb017f000006\"}}"}}})
|
13562
|
+
MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
|
13563
|
+
Processing by MailSpy::TrackingController#bug as HTML
|
13564
|
+
Parameters: {"eid"=>"4f2e16d5ba12eb017f000006"}
|
13565
|
+
MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f2e16d5ba12eb017f000006')}).limit(-1).sort([[:_id, :asc]])
|
13566
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e16d5ba12eb017f000006')}, {"$push"=>{"actions"=>{"count"=>1, "_id"=>BSON::ObjectId('4f2e16d5ba12eb017f000007'), "action_type"=>"open", "updated_at"=>2012-02-05 05:42:45 UTC, "created_at"=>2012-02-05 05:42:45 UTC}}})
|
13567
|
+
Completed 200 OK in 3ms (ActiveRecord: 0.0ms)
|
13568
|
+
MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f2e16d5ba12eb017f000006')}).limit(-1)
|
13569
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13570
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13571
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13572
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13573
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13574
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13575
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e16d5ba12eb017f000008'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:42:45 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:42:45 UTC, "created_at"=>2012-02-05 05:42:45 UTC}])
|
13576
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e16d5ba12eb017f000008')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e16d5ba12eb017f000008\"}}"}}})
|
13577
|
+
MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
|
13578
|
+
Processing by MailSpy::TrackingController#link as HTML
|
13579
|
+
Parameters: {"eid"=>"4f2e16d5ba12eb017f000008", "url"=>"http://google.com", "n"=>"0"}
|
13580
|
+
MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f2e16d5ba12eb017f000008')}).limit(-1).sort([[:_id, :asc]])
|
13581
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e16d5ba12eb017f000008')}, {"$push"=>{"actions"=>{"count"=>1, "_id"=>BSON::ObjectId('4f2e16d5ba12eb017f000009'), "action_type"=>"click", "details"=>{:url=>"http://google.com", :link_number=>"0"}, "updated_at"=>2012-02-05 05:42:45 UTC, "created_at"=>2012-02-05 05:42:45 UTC}}})
|
13582
|
+
Redirected to http://google.com?utm_campaign=tests&utm_content=a-helper_test&utm_medium=email&utm_source=mailspy&utm_term=a-stream
|
13583
|
+
Completed 302 Found in 4ms (ActiveRecord: 0.0ms)
|
13584
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13585
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13586
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
13587
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
13588
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13589
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13590
|
+
MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f2e16d5ba12eb017f00000a'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-05 05:42:45 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-05 05:42:45 UTC, "created_at"=>2012-02-05 05:42:45 UTC}])
|
13591
|
+
MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f2e16d5ba12eb017f00000a')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f2e16d5ba12eb017f00000a\"}}"}}})
|
13592
|
+
MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
|
13593
|
+
MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
|
13594
|
+
MONGODB dummy_test['mail_spy_emails'].remove({})
|
13595
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
13596
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
13597
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: mail_spy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.12
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Timothy Cardenas
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2012-02-
|
13
|
+
date: 2012-02-05 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -225,6 +225,7 @@ files:
|
|
225
225
|
- lib/mail_spy/engine.rb
|
226
226
|
- lib/mail_spy/manager.rb
|
227
227
|
- lib/mail_spy/sendgrid/smtp_api_header.rb
|
228
|
+
- lib/mail_spy/thread_pool.rb
|
228
229
|
- lib/mail_spy/version.rb
|
229
230
|
- lib/mail_spy.rb
|
230
231
|
- lib/tasks/mail_spy_tasks.rake
|