mail_spy 0.0.11 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|