mail_spy 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/mail_spy.rb CHANGED
@@ -5,6 +5,7 @@ require 'work_queue'
5
5
  require "mongoid"
6
6
  require "mail_spy/engine"
7
7
  require "mail_spy/manager"
8
+ require "zurb-foundation"
8
9
  module MailSpy
9
10
 
10
11
  extend MailSpy::Manager
@@ -79,51 +79,32 @@ module MailSpy
79
79
  # Batches through all the emails that were scheduled and have come due
80
80
  # sends them out (step many at a time). Don't thread this method, instead
81
81
  # use the parameters to control concurrency
82
- def send_outstanding_emails(step=100, num_threads=50)
82
+ def send_outstanding_emails(step=200, num_threads=100, num_workers=1)
83
83
  success = false
84
84
  raise "No Email service providers installed" unless MailSpy.esps.present?
85
85
 
86
86
  return if MailSpy::ProcessLog.currently_processing?
87
+ current_time = DateTime.now
87
88
  current_process = MailSpy::ProcessLog.create!(
88
89
  {
89
- :start => Time.now,
90
+ :start => current_time,
90
91
  :running => true,
91
92
  })
92
93
 
93
- wq = WorkQueue.new(num_threads, step*2)
94
- current_time = DateTime.now
95
- offset = 0
96
- processed = 0
97
-
98
- # Helper function for setting present values
99
- def set_if_present(email, pony_hash, pony_key, email_key=nil)
100
- email_key = pony_key if email_key.nil?
101
- value = email.send("#{email_key}")
102
- pony_hash[pony_key] = value if value.present?
103
- end
94
+ count = MailSpy::Email.where(:schedule_at.lte => current_time, :sent => false, :failed => false).count
95
+ first = MailSpy::Email.where(:schedule_at.lte => current_time, :sent => false, :failed => false).first
96
+ division = (count / num_workers).to_i
104
97
 
105
- while true
106
- emails = MailSpy::Email.
107
- limit(step).offset(offset).asc(:_id).
108
- where(:schedule_at.lte => current_time, :sent => false, :failed => false).all
109
- break if emails.count <= 0 #returns enumerator which is never blank
110
- emails.each do |email|
111
- processed += 1
112
- wq.enqueue_b do
113
- MailSpy.using_delayed_job ? email.delay.deliver : email.deliver
114
- end
98
+ num_workers.times do |i|
99
+ if MailSpy.using_delayed_job
100
+ Email.delay.deliver_batch(current_time, first._id, (i - 1) * division, division, step, num_threads)
101
+ else
102
+ Email.deliver_batch(current_time, first._id, (i - 1) * division, division, step, num_threads)
115
103
  end
116
-
117
- # We must join here otherwise the next loop email lookup will be in a
118
- # race condition with the results of our worker_queue.
119
- wq.join
120
-
121
- offset += step
122
104
  end
123
105
 
124
106
  success = true
125
- return processed
126
-
107
+ return count
127
108
  ensure
128
109
  if current_process
129
110
  end_time = Time.now
@@ -1,3 +1,3 @@
1
1
  module MailSpy
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -0,0 +1,16 @@
1
+ # encoding: UTF-8
2
+ # This file is auto-generated from the current state of the database. Instead
3
+ # of editing this file, please use the migrations feature of Active Record to
4
+ # incrementally modify your database, and then regenerate this schema definition.
5
+ #
6
+ # Note that this schema.rb definition is the authoritative source for your
7
+ # database schema. If you need to create the application database on another
8
+ # system, you should be using db:schema:load, not running all the migrations
9
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
11
+ #
12
+ # It's strongly recommended to check this file into your version control system.
13
+
14
+ ActiveRecord::Schema.define(:version => 0) do
15
+
16
+ end
@@ -16348,3 +16348,446 @@ MONGODB dummy_test['mail_spy_emails'].remove({})
16348
16348
   (0.0ms) rollback transaction
16349
16349
   (0.1ms) begin transaction
16350
16350
   (0.0ms) rollback transaction
16351
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
16352
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
16353
+  (0.3ms) begin transaction
16354
+ [AWS S3 200 0.804889] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
16355
+
16356
+ [AWS S3 200 0.096094] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.html.erb")
16357
+
16358
+ [AWS S3 200 0.146586] get_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.html.erb")
16359
+
16360
+ [AWS S3 200 0.090667] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
16361
+
16362
+ [AWS S3 200 0.093591] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.text.erb")
16363
+
16364
+ [AWS S3 200 0.112830] get_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.text.erb")
16365
+
16366
+ MONGODB dummy_test['system.namespaces'].find({})
16367
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad58ba12eb8a08000001'), "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-09 11:26:16 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-09 11:26:19 UTC, "created_at"=>2012-02-09 11:26:19 UTC}])
16368
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad58ba12eb8a08000001')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad58ba12eb8a08000001\"}}"}}})
16369
+ Rendered inline template (23.2ms)
16370
+ Rendered inline template (1.3ms)
16371
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16372
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16373
+  (0.1ms) rollback transaction
16374
+  (0.0ms) begin transaction
16375
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad5cba12eb8a08000002'), "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-09 11:26:20 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-09 11:26:20 UTC, "created_at"=>2012-02-09 11:26:20 UTC}])
16376
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5cba12eb8a08000002')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad5cba12eb8a08000002\"}}"}}})
16377
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16378
+ Rendered inline template (1.6ms)
16379
+ Rendered inline template (1.3ms)
16380
+
16381
+ Sent mail to trcarden@gmail.com (1343ms)
16382
+ Date: Thu, 09 Feb 2012 03:26:20 -0800
16383
+ From: test@test.com
16384
+ Reply-To: testGuy
16385
+ To: trcarden@gmail.com
16386
+ Message-ID: <4f33ad5cc7d6c_8a0880434f4c906c4@toms-iphone-4.mail>
16387
+ Subject: test subject
16388
+ Mime-Version: 1.0
16389
+ Content-Type: multipart/alternative;
16390
+ boundary="--==_mimepart_4f33ad5caa318_8a0880434f4c90334";
16391
+ charset=UTF-8
16392
+ Content-Transfer-Encoding: 7bit
16393
+ X-SMTPAPI: {"unique_args": {"eid": "4f33ad5cba12eb8a08000002"}}
16394
+
16395
+
16396
+
16397
+ ----==_mimepart_4f33ad5caa318_8a0880434f4c90334
16398
+ Date: Thu, 09 Feb 2012 03:26:20 -0800
16399
+ Mime-Version: 1.0
16400
+ Content-Type: text/plain;
16401
+ charset=UTF-8
16402
+ Content-Transfer-Encoding: 7bit
16403
+ Content-ID: <4f33ad5cb9fe7_8a0880434f4c904c3@toms-iphone-4.mail>
16404
+
16405
+ You should be able to click on the link and have the server record the even
16406
+ and forward you to the correct place.
16407
+
16408
+ A link : <a href="http://localhost:5000/mail/t?eid=4f33ad5cba12eb8a08000002&amp;n=1&amp;url=www.google.com">My home</a>
16409
+ ---------------------------
16410
+
16411
+ You should be able to show images in the email client and have the server
16412
+ track the open
16413
+ A Bug is in the parenthesis (<img src='http://localhost:5000/mail/b?eid=4f33ad5cba12eb8a08000002' style='display:none' width='1' height='1' border='0' />)
16414
+
16415
+
16416
+
16417
+
16418
+ ----==_mimepart_4f33ad5caa318_8a0880434f4c90334
16419
+ Date: Thu, 09 Feb 2012 03:26:20 -0800
16420
+ Mime-Version: 1.0
16421
+ Content-Type: text/html;
16422
+ charset=UTF-8
16423
+ Content-Transfer-Encoding: 7bit
16424
+ Content-ID: <4f33ad5cc2acb_8a0880434f4c9054c@toms-iphone-4.mail>
16425
+
16426
+ <p>
16427
+ You should be able to click on the link and have the server record the even
16428
+ and forward you to the correct place.
16429
+
16430
+ A link : <a href="http://localhost:5000/mail/t?eid=4f33ad5cba12eb8a08000002&amp;n=1&amp;url=www.google.com">My home</a>
16431
+ </p>
16432
+
16433
+ <br>
16434
+
16435
+ <p>
16436
+ You should be able to show images in the email client and have the server
16437
+ track the open
16438
+ A Bug is in the parenthesis (<img src='http://localhost:5000/mail/b?eid=4f33ad5cba12eb8a08000002' style='display:none' width='1' height='1' border='0' />)
16439
+ </p>
16440
+
16441
+
16442
+
16443
+ ----==_mimepart_4f33ad5caa318_8a0880434f4c90334--
16444
+
16445
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16446
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16447
+  (0.1ms) rollback transaction
16448
+  (0.0ms) begin transaction
16449
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16450
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16451
+  (0.0ms) rollback transaction
16452
+  (0.0ms) begin transaction
16453
+ MONGODB dummy_test['system.namespaces'].find({})
16454
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16455
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16456
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16457
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16458
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000003'), "to"=>"test@test.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:26:22 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-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}])
16459
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000003')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad5eba12eb8a08000003\"}}"}}})
16460
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16461
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16462
+  (0.1ms) rollback transaction
16463
+  (0.0ms) begin transaction
16464
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16465
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16466
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16467
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16468
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16469
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16470
+  (0.0ms) rollback transaction
16471
+  (0.0ms) begin transaction
16472
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16473
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16474
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16475
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16476
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16477
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16478
+  (0.1ms) rollback transaction
16479
+  (0.0ms) begin transaction
16480
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16481
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16482
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16483
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16484
+ [AWS S3 200 0.090151] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
16485
+
16486
+ [AWS S3 404 0.097776] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"NO SUCH CAMPAIGN/NO SUCH STREAM/NO SUCH COMPONENT.html.erb") AWS::S3::Errors::NoSuchKey: No Such Key
16487
+
16488
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16489
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16490
+  (0.1ms) rollback transaction
16491
+  (0.0ms) begin transaction
16492
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16493
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16494
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16495
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16496
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000005'), "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-09 11:26:22 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-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}])
16497
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000005')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad5eba12eb8a08000005\"}}"}}})
16498
+ MONGODB dummy_test['mail_spy_process_logs'].find({:running=>true}).limit(-1).sort([[:_id, :asc]])
16499
+ MONGODB dummy_test['mail_spy_process_logs'].insert([{"success"=>false, "running"=>true, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000006'), "start"=>2012-02-09 11:26:22 UTC, "updated_at"=>2012-02-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}])
16500
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{:schedule_at=>{"$lte"=>2012-02-09 11:26:22 UTC}, :sent=>false, :failed=>false}, "fields"=>nil}).limit(-1)
16501
+ MONGODB dummy_test['mail_spy_emails'].find({:schedule_at=>{"$lte"=>2012-02-09 11:26:22 UTC}, :sent=>false, :failed=>false}).limit(-1).sort([[:_id, :asc]])
16502
+ MONGODB dummy_test['mail_spy_process_logs'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000006')}, {"$set"=>{"end"=>2012-02-09 11:26:22 UTC, "seconds_elapsed"=>0, "running"=>false}})
16503
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16504
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16505
+  (0.1ms) rollback transaction
16506
+  (0.0ms) begin transaction
16507
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16508
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16509
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16510
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16511
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16512
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16513
+  (0.0ms) rollback transaction
16514
+  (0.1ms) begin transaction
16515
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16516
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16517
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000007'), "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-09 11:26:22 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-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}])
16518
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000007')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad5eba12eb8a08000007\"}}"}}})
16519
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16520
+ Processing by MailSpy::TrackingController#action as HTML
16521
+ Parameters: {"eid"=>"4f33ad5eba12eb8a08000007", "action_type"=>"Conversion", "count"=>"3"}
16522
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad5eba12eb8a08000007')}).limit(-1).sort([[:_id, :asc]])
16523
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000007')}, {"$push"=>{"actions"=>{"count"=>3, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000008'), "action_type"=>"Conversion", "updated_at"=>2012-02-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}}})
16524
+ Completed 200 OK in 4ms (ActiveRecord: 0.0ms)
16525
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad5eba12eb8a08000007')}).limit(-1)
16526
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16527
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16528
+  (0.1ms) rollback transaction
16529
+  (0.0ms) begin transaction
16530
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16531
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16532
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000009'), "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-09 11:26:22 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-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}])
16533
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000009')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad5eba12eb8a08000009\"}}"}}})
16534
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16535
+ Processing by MailSpy::TrackingController#bug as HTML
16536
+ Parameters: {"eid"=>"4f33ad5eba12eb8a08000009"}
16537
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad5eba12eb8a08000009')}).limit(-1).sort([[:_id, :asc]])
16538
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000009')}, {"$push"=>{"actions"=>{"count"=>1, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a0800000a'), "action_type"=>"open", "updated_at"=>2012-02-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}}})
16539
+ Completed 200 OK in 3ms (ActiveRecord: 0.0ms)
16540
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad5eba12eb8a08000009')}).limit(-1)
16541
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16542
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16543
+  (0.1ms) rollback transaction
16544
+  (0.0ms) begin transaction
16545
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16546
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16547
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a0800000b'), "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-09 11:26:22 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-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}])
16548
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a0800000b')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad5eba12eb8a0800000b\"}}"}}})
16549
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16550
+ Processing by MailSpy::TrackingController#link as HTML
16551
+ Parameters: {"eid"=>"4f33ad5eba12eb8a0800000b", "url"=>"http://google.com", "n"=>"0"}
16552
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad5eba12eb8a0800000b')}).limit(-1).sort([[:_id, :asc]])
16553
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a0800000b')}, {"$push"=>{"actions"=>{"count"=>1, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a0800000c'), "action_type"=>"click", "details"=>{:url=>"http://google.com", :link_number=>"0"}, "updated_at"=>2012-02-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}}})
16554
+ Redirected to http://google.com?utm_campaign=tests&utm_content=a-helper_test&utm_medium=email&utm_source=mailspy&utm_term=a-stream
16555
+ Completed 302 Found in 3ms (ActiveRecord: 0.0ms)
16556
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16557
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad5eba12eb8a0800000b')}).limit(-1)
16558
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16559
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16560
+  (0.1ms) rollback transaction
16561
+  (0.0ms) begin transaction
16562
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16563
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16564
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a0800000d'), "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-09 11:26:22 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-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}])
16565
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a0800000d')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad5eba12eb8a0800000d\"}}"}}})
16566
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16567
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16568
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16569
+  (0.0ms) rollback transaction
16570
+  (0.1ms) begin transaction
16571
+  (0.1ms) rollback transaction
16572
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
16573
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
16574
+  (0.3ms) begin transaction
16575
+ [AWS S3 200 0.758318] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
16576
+
16577
+ [AWS S3 200 0.091158] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.html.erb")
16578
+
16579
+ [AWS S3 200 0.098760] get_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.html.erb")
16580
+
16581
+ [AWS S3 200 0.084134] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
16582
+
16583
+ [AWS S3 200 0.093085] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.text.erb")
16584
+
16585
+ [AWS S3 200 0.135305] get_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.text.erb")
16586
+
16587
+ MONGODB dummy_test['system.namespaces'].find({})
16588
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad91ba12eb8a17000001'), "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-09 11:27:13 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-09 11:27:15 UTC, "created_at"=>2012-02-09 11:27:15 UTC}])
16589
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad91ba12eb8a17000001')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad91ba12eb8a17000001\"}}"}}})
16590
+ Rendered inline template (22.3ms)
16591
+ Rendered inline template (1.3ms)
16592
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16593
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16594
+  (0.1ms) rollback transaction
16595
+  (0.0ms) begin transaction
16596
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad95ba12eb8a17000002'), "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-09 11:27:17 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-09 11:27:17 UTC, "created_at"=>2012-02-09 11:27:17 UTC}])
16597
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad95ba12eb8a17000002')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad95ba12eb8a17000002\"}}"}}})
16598
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16599
+ Rendered inline template (1.5ms)
16600
+ Rendered inline template (1.3ms)
16601
+
16602
+ Sent mail to trcarden@gmail.com (1358ms)
16603
+ Date: Thu, 09 Feb 2012 03:27:17 -0800
16604
+ From: test@test.com
16605
+ Reply-To: testGuy
16606
+ To: trcarden@gmail.com
16607
+ Message-ID: <4f33ad95459a5_8a1780434f4c67347@toms-iphone-4.mail>
16608
+ Subject: test subject
16609
+ Mime-Version: 1.0
16610
+ Content-Type: multipart/alternative;
16611
+ boundary="--==_mimepart_4f33ad95291fa_8a1780434f4c670db";
16612
+ charset=UTF-8
16613
+ Content-Transfer-Encoding: 7bit
16614
+ X-SMTPAPI: {"unique_args": {"eid": "4f33ad95ba12eb8a17000002"}}
16615
+
16616
+
16617
+
16618
+ ----==_mimepart_4f33ad95291fa_8a1780434f4c670db
16619
+ Date: Thu, 09 Feb 2012 03:27:17 -0800
16620
+ Mime-Version: 1.0
16621
+ Content-Type: text/plain;
16622
+ charset=UTF-8
16623
+ Content-Transfer-Encoding: 7bit
16624
+ Content-ID: <4f33ad9538628_8a1780434f4c671ce@toms-iphone-4.mail>
16625
+
16626
+ You should be able to click on the link and have the server record the even
16627
+ and forward you to the correct place.
16628
+
16629
+ A link : <a href="http://localhost:5000/mail/t?eid=4f33ad95ba12eb8a17000002&amp;n=1&amp;url=www.google.com">My home</a>
16630
+ ---------------------------
16631
+
16632
+ You should be able to show images in the email client and have the server
16633
+ track the open
16634
+ A Bug is in the parenthesis (<img src='http://localhost:5000/mail/b?eid=4f33ad95ba12eb8a17000002' style='display:none' width='1' height='1' border='0' />)
16635
+
16636
+
16637
+
16638
+
16639
+ ----==_mimepart_4f33ad95291fa_8a1780434f4c670db
16640
+ Date: Thu, 09 Feb 2012 03:27:17 -0800
16641
+ Mime-Version: 1.0
16642
+ Content-Type: text/html;
16643
+ charset=UTF-8
16644
+ Content-Transfer-Encoding: 7bit
16645
+ Content-ID: <4f33ad9540be6_8a1780434f4c6722d@toms-iphone-4.mail>
16646
+
16647
+ <p>
16648
+ You should be able to click on the link and have the server record the even
16649
+ and forward you to the correct place.
16650
+
16651
+ A link : <a href="http://localhost:5000/mail/t?eid=4f33ad95ba12eb8a17000002&amp;n=1&amp;url=www.google.com">My home</a>
16652
+ </p>
16653
+
16654
+ <br>
16655
+
16656
+ <p>
16657
+ You should be able to show images in the email client and have the server
16658
+ track the open
16659
+ A Bug is in the parenthesis (<img src='http://localhost:5000/mail/b?eid=4f33ad95ba12eb8a17000002' style='display:none' width='1' height='1' border='0' />)
16660
+ </p>
16661
+
16662
+
16663
+
16664
+ ----==_mimepart_4f33ad95291fa_8a1780434f4c670db--
16665
+
16666
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16667
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16668
+  (0.1ms) rollback transaction
16669
+  (0.0ms) begin transaction
16670
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16671
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16672
+  (0.0ms) rollback transaction
16673
+  (0.0ms) begin transaction
16674
+ MONGODB dummy_test['system.namespaces'].find({})
16675
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16676
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16677
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16678
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16679
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000003'), "to"=>"test@test.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:27:18 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-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}])
16680
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000003')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad96ba12eb8a17000003\"}}"}}})
16681
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16682
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16683
+  (0.1ms) rollback transaction
16684
+  (0.0ms) begin transaction
16685
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16686
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16687
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16688
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16689
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16690
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16691
+  (0.0ms) rollback transaction
16692
+  (0.0ms) begin transaction
16693
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16694
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16695
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16696
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16697
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16698
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16699
+  (0.1ms) rollback transaction
16700
+  (0.0ms) begin transaction
16701
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16702
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16703
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16704
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16705
+ [AWS S3 200 0.091778] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
16706
+
16707
+ [AWS S3 404 0.092340] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"NO SUCH CAMPAIGN/NO SUCH STREAM/NO SUCH COMPONENT.html.erb") AWS::S3::Errors::NoSuchKey: No Such Key
16708
+
16709
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16710
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16711
+  (0.1ms) rollback transaction
16712
+  (0.0ms) begin transaction
16713
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16714
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16715
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16716
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16717
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000005'), "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-09 11:27:18 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-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}])
16718
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000005')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad96ba12eb8a17000005\"}}"}}})
16719
+ MONGODB dummy_test['mail_spy_process_logs'].find({:running=>true}).limit(-1).sort([[:_id, :asc]])
16720
+ MONGODB dummy_test['mail_spy_process_logs'].insert([{"success"=>false, "running"=>true, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000006'), "start"=>2012-02-09 11:27:18 UTC, "updated_at"=>2012-02-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}])
16721
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{:schedule_at=>{"$lte"=>2012-02-09 11:27:18 UTC}, :sent=>false, :failed=>false}, "fields"=>nil}).limit(-1)
16722
+ MONGODB dummy_test['mail_spy_emails'].find({:schedule_at=>{"$lte"=>2012-02-09 11:27:18 UTC}, :sent=>false, :failed=>false}).limit(-1).sort([[:_id, :asc]])
16723
+ MONGODB dummy_test['mail_spy_process_logs'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000006')}, {"$set"=>{"end"=>2012-02-09 11:27:18 UTC, "seconds_elapsed"=>0, "running"=>false, "success"=>true}})
16724
+ MONGODB dummy_test['mail_spy_process_logs'].find({}).limit(-1).sort([[:_id, :asc]])
16725
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16726
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16727
+  (0.1ms) rollback transaction
16728
+  (0.0ms) begin transaction
16729
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16730
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16731
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16732
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16733
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16734
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16735
+  (0.0ms) rollback transaction
16736
+  (0.1ms) begin transaction
16737
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16738
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16739
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000007'), "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-09 11:27:18 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-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}])
16740
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000007')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad96ba12eb8a17000007\"}}"}}})
16741
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16742
+ Processing by MailSpy::TrackingController#action as HTML
16743
+ Parameters: {"eid"=>"4f33ad96ba12eb8a17000007", "action_type"=>"Conversion", "count"=>"3"}
16744
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad96ba12eb8a17000007')}).limit(-1).sort([[:_id, :asc]])
16745
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000007')}, {"$push"=>{"actions"=>{"count"=>3, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000008'), "action_type"=>"Conversion", "updated_at"=>2012-02-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}}})
16746
+ Completed 200 OK in 5ms (ActiveRecord: 0.0ms)
16747
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad96ba12eb8a17000007')}).limit(-1)
16748
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16749
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16750
+  (0.1ms) rollback transaction
16751
+  (0.0ms) begin transaction
16752
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16753
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16754
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000009'), "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-09 11:27:18 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-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}])
16755
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000009')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad96ba12eb8a17000009\"}}"}}})
16756
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16757
+ Processing by MailSpy::TrackingController#bug as HTML
16758
+ Parameters: {"eid"=>"4f33ad96ba12eb8a17000009"}
16759
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad96ba12eb8a17000009')}).limit(-1).sort([[:_id, :asc]])
16760
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000009')}, {"$push"=>{"actions"=>{"count"=>1, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a1700000a'), "action_type"=>"open", "updated_at"=>2012-02-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}}})
16761
+ Completed 200 OK in 3ms (ActiveRecord: 0.0ms)
16762
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad96ba12eb8a17000009')}).limit(-1)
16763
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16764
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16765
+  (0.1ms) rollback transaction
16766
+  (0.0ms) begin transaction
16767
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16768
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16769
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a1700000b'), "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-09 11:27:18 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-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}])
16770
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a1700000b')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad96ba12eb8a1700000b\"}}"}}})
16771
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16772
+ Processing by MailSpy::TrackingController#link as HTML
16773
+ Parameters: {"eid"=>"4f33ad96ba12eb8a1700000b", "url"=>"http://google.com", "n"=>"0"}
16774
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad96ba12eb8a1700000b')}).limit(-1).sort([[:_id, :asc]])
16775
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a1700000b')}, {"$push"=>{"actions"=>{"count"=>1, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a1700000c'), "action_type"=>"click", "details"=>{:url=>"http://google.com", :link_number=>"0"}, "updated_at"=>2012-02-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}}})
16776
+ Redirected to http://google.com?utm_campaign=tests&utm_content=a-helper_test&utm_medium=email&utm_source=mailspy&utm_term=a-stream
16777
+ Completed 302 Found in 3ms (ActiveRecord: 0.0ms)
16778
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16779
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad96ba12eb8a1700000b')}).limit(-1)
16780
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16781
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16782
+  (0.1ms) rollback transaction
16783
+  (0.0ms) begin transaction
16784
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16785
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16786
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a1700000d'), "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-09 11:27:18 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-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}])
16787
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a1700000d')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad96ba12eb8a1700000d\"}}"}}})
16788
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16789
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16790
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16791
+  (0.0ms) rollback transaction
16792
+  (0.0ms) begin transaction
16793
+  (0.0ms) rollback transaction