multi_mail 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -1
- data/.travis.yml +10 -0
- data/README.md +283 -59
- data/Rakefile +38 -19
- data/lib/multi_mail/cloudmailin/receiver.rb +3 -13
- data/lib/multi_mail/mailgun/message.rb +67 -0
- data/lib/multi_mail/mailgun/receiver.rb +20 -13
- data/lib/multi_mail/mailgun/sender.rb +79 -2
- data/lib/multi_mail/mandrill/message.rb +74 -0
- data/lib/multi_mail/mandrill/receiver.rb +36 -16
- data/lib/multi_mail/mandrill/sender.rb +77 -2
- data/lib/multi_mail/message/base.rb +40 -0
- data/lib/multi_mail/postmark/receiver.rb +1 -1
- data/lib/multi_mail/postmark/sender.rb +35 -5
- data/lib/multi_mail/receiver/base.rb +31 -2
- data/lib/multi_mail/receiver.rb +1 -4
- data/lib/multi_mail/sender/base.rb +23 -1
- data/lib/multi_mail/sendgrid/message.rb +74 -0
- data/lib/multi_mail/sendgrid/receiver.rb +72 -23
- data/lib/multi_mail/sendgrid/sender.rb +63 -2
- data/lib/multi_mail/service.rb +48 -56
- data/lib/multi_mail/simple/receiver.rb +4 -4
- data/lib/multi_mail/version.rb +1 -1
- data/lib/multi_mail.rb +16 -1
- data/multi_mail.gemspec +4 -1
- data/spec/fixtures/empty.gif +0 -0
- data/spec/fixtures/mailgun/raw/invalid.txt +13 -0
- data/spec/fixtures/mailgun/raw/missing.txt +13 -0
- data/spec/fixtures/mailgun/raw/spam.txt +13 -0
- data/spec/fixtures/mailgun/raw/valid.txt +13 -0
- data/spec/fixtures/mandrill/invalid.txt +15 -0
- data/spec/fixtures/mandrill/missing.txt +14 -0
- data/spec/fixtures/mandrill/multiple.txt +15 -0
- data/spec/fixtures/mandrill/valid.txt +10 -5
- data/spec/fixtures/postmark/valid.txt +13 -13
- data/spec/fixtures/sendgrid/encoding.txt +90 -0
- data/spec/fixtures/sendgrid/spam.txt +94 -0
- data/spec/fixtures/sendgrid/valid.txt +136 -0
- data/spec/mailgun/message_spec.rb +251 -0
- data/spec/mailgun/receiver_spec.rb +35 -20
- data/spec/mailgun/sender_spec.rb +175 -0
- data/spec/mandrill/message_spec.rb +305 -0
- data/spec/mandrill/receiver_spec.rb +90 -46
- data/spec/mandrill/sender_spec.rb +138 -0
- data/spec/message/base_spec.rb +81 -0
- data/spec/postmark/receiver_spec.rb +4 -4
- data/spec/postmark/sender_spec.rb +118 -0
- data/spec/receiver/base_spec.rb +16 -9
- data/spec/sender/base_spec.rb +24 -10
- data/spec/sendgrid/message_spec.rb +265 -0
- data/spec/sendgrid/receiver_spec.rb +77 -0
- data/spec/sendgrid/sender_spec.rb +140 -0
- data/spec/service_spec.rb +18 -1
- data/spec/simple/receiver_spec.rb +1 -1
- data/spec/spec_helper.rb +46 -4
- metadata +226 -143
- data/lib/multi_mail/sender.rb +0 -46
- data/lib/multi_mail/simple/sender.rb +0 -14
- data/spec/sender_spec.rb +0 -13
- data/spec/simple/sender_spec.rb +0 -0
@@ -0,0 +1,74 @@
|
|
1
|
+
module MultiMail
|
2
|
+
module Message
|
3
|
+
# @see http://sendgrid.com/docs/API_Reference/Web_API/mail.html
|
4
|
+
class SendGrid < MultiMail::Message::Base
|
5
|
+
# Returns the message headers in SendGrid format.
|
6
|
+
#
|
7
|
+
# @return [Hash] the message headers in SendGrid format
|
8
|
+
def sendgrid_headers
|
9
|
+
headers = {}
|
10
|
+
header_fields.each do |field|
|
11
|
+
key = field.name.downcase
|
12
|
+
unless %w(to subject from bcc reply-to date message-id).include?(key)
|
13
|
+
# The JSON must not contain integers.
|
14
|
+
headers[field.name] = field.value.to_s
|
15
|
+
end
|
16
|
+
end
|
17
|
+
headers
|
18
|
+
end
|
19
|
+
|
20
|
+
# Returns the message's attachments in SendGrid format.
|
21
|
+
#
|
22
|
+
# @return [Hash] the attachments in SendGrid format
|
23
|
+
def sendgrid_files
|
24
|
+
hash = {}
|
25
|
+
attachments.map do |attachment|
|
26
|
+
# File contents must be part of the multipart HTTP POST.
|
27
|
+
# @see http://sendgrid.com/docs/API_Reference/Web_API/mail.html
|
28
|
+
hash[attachment.filename] = Faraday::UploadIO.new(StringIO.new(attachment.body.decoded), attachment.content_type, attachment.filename)
|
29
|
+
end
|
30
|
+
hash
|
31
|
+
end
|
32
|
+
|
33
|
+
# Returns the attachments' content IDs in SendGrid format.
|
34
|
+
#
|
35
|
+
# @return [Hash] the content IDs in SendGrid format
|
36
|
+
def sendgrid_content
|
37
|
+
hash = {}
|
38
|
+
attachments.each do |attachment|
|
39
|
+
if attachment.content_type.start_with?('image/')
|
40
|
+
# Mirror Mailgun behavior for naming inline attachments.
|
41
|
+
# @see http://documentation.mailgun.com/user_manual.html#inline-image
|
42
|
+
hash[attachment.filename] = attachment.filename
|
43
|
+
end
|
44
|
+
end
|
45
|
+
hash
|
46
|
+
end
|
47
|
+
|
48
|
+
# Returns the message as parameters to POST to SendGrid.
|
49
|
+
#
|
50
|
+
# @return [Hash] the message as parameters to POST to SendGrid
|
51
|
+
def to_sendgrid_hash
|
52
|
+
headers = sendgrid_headers
|
53
|
+
|
54
|
+
hash = {
|
55
|
+
'to' => to.to_a,
|
56
|
+
'toname' => to && self[:to].display_names.to_a,
|
57
|
+
'subject' => subject,
|
58
|
+
'text' => body_text,
|
59
|
+
'html' => body_html,
|
60
|
+
'from' => from && from.first,
|
61
|
+
'bcc' => bcc.to_a,
|
62
|
+
'fromname' => from && self[:from].display_names.first,
|
63
|
+
'replyto' => reply_to && reply_to.first,
|
64
|
+
'date' => date && Time.parse(date.to_s).rfc2822, # Ruby 1.8.7
|
65
|
+
'files' => sendgrid_files,
|
66
|
+
'content' => sendgrid_content,
|
67
|
+
'headers' => headers.empty? ? nil : JSON.dump(headers),
|
68
|
+
}
|
69
|
+
|
70
|
+
normalize(hash)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -1,42 +1,91 @@
|
|
1
1
|
module MultiMail
|
2
2
|
module Receiver
|
3
|
-
|
3
|
+
# SendGrid's incoming email receiver.
|
4
|
+
class SendGrid
|
4
5
|
include MultiMail::Receiver::Base
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
# Initializes a SendGrid incoming email receiver.
|
7
|
+
#
|
8
|
+
# @param [Hash] options required and optional arguments
|
9
|
+
# @option option [Float] :spamassassin_threshold the Spamassassin score
|
10
|
+
# needed to flag a message as spam
|
11
11
|
def initialize(options = {})
|
12
12
|
super
|
13
|
-
@
|
14
|
-
@sendgrid_password = options[:sendgrid_password]
|
15
|
-
@http_post_format = options[:http_post_format]
|
13
|
+
@spamassassin_threshold = options[:spamassassin_threshold] || 5
|
16
14
|
end
|
17
15
|
|
16
|
+
# Transforms the content of SendGrid's webook into a list of messages.
|
17
|
+
#
|
18
|
+
# @param [Hash] params the content of Mandrill's webhook
|
19
|
+
# @return [Array<Mail::Messages>] messages
|
20
|
+
# @see http://sendgrid.com/docs/API_Reference/Webhooks/parse.html
|
18
21
|
def transform(params)
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
+
# Make variables available to the `encode` method.
|
23
|
+
@params = params
|
24
|
+
@charsets = JSON.load(params['charsets'])
|
22
25
|
|
23
|
-
|
26
|
+
# Mail changes `self`.
|
27
|
+
this = self
|
28
|
+
|
29
|
+
message = Mail.new do
|
30
|
+
# SendGrid includes a `charsets` parameter, which describes the
|
31
|
+
# encodings of the `from`, `to`, `cc` and `subject` parameters, which
|
32
|
+
# we don't need because we parse the headers directly.
|
33
|
+
# @see http://sendgrid.com/docs/API_Reference/Webhooks/parse.html#-Character-Sets-and-Header-Decoding
|
24
34
|
header params['headers']
|
25
35
|
|
26
|
-
|
36
|
+
# The following are redundant with `headers`:
|
37
|
+
#
|
38
|
+
# from params['from']
|
39
|
+
# to params['to']
|
40
|
+
# cc params['cc']
|
41
|
+
# subject params['subject']
|
42
|
+
|
43
|
+
text_part do
|
44
|
+
body this.encode('text')
|
45
|
+
end
|
46
|
+
|
47
|
+
if params.key?('html')
|
48
|
+
html_part do
|
49
|
+
content_type 'text/html; charset=UTF-8'
|
50
|
+
body this.encode('html')
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
1.upto(params['attachments'].to_i) do |n|
|
55
|
+
attachment = params["attachment#{n}"]
|
56
|
+
add_file(this.class.add_file_arguments(attachment))
|
57
|
+
end
|
58
|
+
end
|
27
59
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
60
|
+
# Extra SendGrid parameters. Discard
|
61
|
+
%w(dkim SPF spam_report spam_score).each do |key|
|
62
|
+
message[key] = params[key]
|
63
|
+
end
|
64
|
+
|
65
|
+
# Discard `envelope`, which contains `to` and `from`, and the
|
66
|
+
# undocumented `attachment-info`.
|
67
|
+
[message]
|
68
|
+
end
|
32
69
|
|
33
|
-
|
34
|
-
|
70
|
+
# Returns whether a message is spam.
|
71
|
+
#
|
72
|
+
# @param [Mail::Message] message a message
|
73
|
+
# @return [Boolean] whether the message is spam
|
74
|
+
def spam?(message)
|
75
|
+
message['spam_score'] && message['spam_score'].value.to_f > @spamassassin_threshold
|
76
|
+
end
|
77
|
+
|
78
|
+
def encode(key)
|
79
|
+
if @charsets.key?(key)
|
80
|
+
if @params[key].respond_to?(:force_encoding)
|
81
|
+
@params[key].force_encoding(@charsets[key]).encode('UTF-8')
|
82
|
+
else
|
83
|
+
Iconv.conv('UTF-8', @charsets[key], @params[key])
|
35
84
|
end
|
85
|
+
else
|
86
|
+
@params[key]
|
36
87
|
end
|
37
88
|
end
|
38
89
|
end
|
39
90
|
end
|
40
91
|
end
|
41
|
-
|
42
|
-
|
@@ -1,10 +1,71 @@
|
|
1
|
+
require 'multi_mail/sendgrid/message'
|
2
|
+
|
1
3
|
module MultiMail
|
2
4
|
module Sender
|
3
|
-
|
4
|
-
|
5
|
+
# SendGrid's outgoing mail sender.
|
6
|
+
class SendGrid
|
7
|
+
include MultiMail::Sender::Base
|
8
|
+
|
9
|
+
# @see http://sendgrid.com/docs/API_Reference/Web_API/
|
10
|
+
requires :api_user, :api_key
|
5
11
|
|
12
|
+
# Initializes a SendGrid outgoing email sender.
|
13
|
+
#
|
14
|
+
# @param [Hash] options required and optional arguments
|
15
|
+
# @option options [String] :api_user a SendGrid API user
|
16
|
+
# @option options [String] :api_key a SendGrid API key
|
6
17
|
def initialize(options = {})
|
7
18
|
super
|
19
|
+
if Hash === settings[:'x-smtpapi']
|
20
|
+
settings[:'x-smtpapi'] = JSON.dump(settings[:'x-smtpapi'])
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# Delivers a message via the SendGrid API.
|
25
|
+
#
|
26
|
+
# @param [Mail::Message] mail a message
|
27
|
+
# @see http://sendgrid.com/docs/API_Reference/Web_API/mail.html
|
28
|
+
def deliver!(mail)
|
29
|
+
parameters = settings.dup
|
30
|
+
parameters.delete(:return_response)
|
31
|
+
message = MultiMail::Message::SendGrid.new(mail).to_sendgrid_hash.merge(parameters)
|
32
|
+
|
33
|
+
connection = Faraday.new do |conn|
|
34
|
+
conn.request :multipart
|
35
|
+
conn.request :url_encoded
|
36
|
+
conn.adapter Faraday.default_adapter
|
37
|
+
end
|
38
|
+
|
39
|
+
response = connection.post('https://sendgrid.com/api/mail.send.json', message)
|
40
|
+
|
41
|
+
body = JSON.load(response.body)
|
42
|
+
|
43
|
+
unless response.status == 200
|
44
|
+
if body['message'] == 'error'
|
45
|
+
case body['errors']
|
46
|
+
when ['Bad username / password']
|
47
|
+
raise InvalidAPIKey, body['errors'].first
|
48
|
+
when ['Empty from email address (required)']
|
49
|
+
raise MissingSender, body['errors'].first
|
50
|
+
when ['Missing destination email']
|
51
|
+
raise MissingRecipients, body['errors'].first
|
52
|
+
when ['Missing subject']
|
53
|
+
raise MissingSubject, body['errors'].first
|
54
|
+
when ['Missing email body']
|
55
|
+
raise MissingBody, body['errors'].first
|
56
|
+
else
|
57
|
+
raise body['errors'].join
|
58
|
+
end
|
59
|
+
else
|
60
|
+
raise body['errors'].join
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
if settings[:return_response]
|
65
|
+
body
|
66
|
+
else
|
67
|
+
self
|
68
|
+
end
|
8
69
|
end
|
9
70
|
end
|
10
71
|
end
|
data/lib/multi_mail/service.rb
CHANGED
@@ -2,71 +2,63 @@ module MultiMail
|
|
2
2
|
# Interacts with email APIs to send or receive email.
|
3
3
|
#
|
4
4
|
# @see http://rdoc.info/gems/fog/Fog/Service
|
5
|
-
|
6
|
-
#
|
5
|
+
module Service
|
6
|
+
# Appends the given arguments to the list of required arguments.
|
7
7
|
#
|
8
|
-
# @param
|
9
|
-
|
10
|
-
|
8
|
+
# @param args one or more required arguments
|
9
|
+
# @see Fog::Service::requires
|
10
|
+
def requires(*args)
|
11
|
+
requirements.concat(args)
|
11
12
|
end
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
end
|
14
|
+
# Returns the list of required arguments.
|
15
|
+
#
|
16
|
+
# @return [Array] a list of required arguments
|
17
|
+
# @see Fog::Service::requirements
|
18
|
+
def requirements
|
19
|
+
@requirements ||= []
|
20
|
+
end
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
22
|
+
# Appends the given arguments to the list of optional arguments.
|
23
|
+
#
|
24
|
+
# @param args one or more optional arguments
|
25
|
+
# @see Fog::Service::recognizes
|
26
|
+
def recognizes(*args)
|
27
|
+
recognized.concat(args)
|
28
|
+
end
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
30
|
+
# Returns the list of optional arguments.
|
31
|
+
#
|
32
|
+
# @return [Array] a list of optional arguments
|
33
|
+
# @see Fog::Service::recognized
|
34
|
+
def recognized
|
35
|
+
@recognized ||= []
|
36
|
+
end
|
37
37
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
38
|
+
# Ensures that required arguments are present and that optional arguments
|
39
|
+
# are recognized.
|
40
|
+
#
|
41
|
+
# @param [Hash] options arguments
|
42
|
+
# @raise [ArgumentError] if it can't find a required argument or can't
|
43
|
+
# recognize an optional argument
|
44
|
+
# @see Fog::Service::validate_options
|
45
|
+
def validate_options(options, raise_error_if_unrecognized = true)
|
46
|
+
keys = []
|
47
|
+
for key, value in options
|
48
|
+
unless value.nil?
|
49
|
+
keys << key
|
50
|
+
end
|
44
51
|
end
|
45
52
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
# @raise [ArgumentError] if it can't find a required argument or can't
|
51
|
-
# recognize an optional argument
|
52
|
-
# @see Fog::Service::validate_options
|
53
|
-
def validate_options(options)
|
54
|
-
keys = []
|
55
|
-
for key, value in options
|
56
|
-
unless value.nil?
|
57
|
-
keys << key
|
58
|
-
end
|
59
|
-
end
|
60
|
-
missing = requirements - keys
|
61
|
-
unless missing.empty?
|
62
|
-
raise ArgumentError, "Missing required arguments: #{missing.map(&:to_s).sort.join(', ')}"
|
63
|
-
end
|
53
|
+
missing = requirements - keys
|
54
|
+
unless missing.empty?
|
55
|
+
raise ArgumentError, "Missing required arguments: #{missing.map(&:to_s).sort.join(', ')}"
|
56
|
+
end
|
64
57
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
end
|
58
|
+
if !recognizes.empty? && raise_error_if_unrecognized
|
59
|
+
unrecognized = options.keys - requirements - recognized
|
60
|
+
unless unrecognized.empty?
|
61
|
+
raise ArgumentError, "Unrecognized arguments: #{unrecognized.map(&:to_s).sort.join(', ')}"
|
70
62
|
end
|
71
63
|
end
|
72
64
|
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
module MultiMail
|
2
2
|
module Receiver
|
3
|
-
class Simple
|
3
|
+
class Simple
|
4
4
|
include MultiMail::Receiver::Base
|
5
|
-
|
6
|
-
# email message parsable by the Mail gem.
|
5
|
+
|
6
|
+
# Expects a raw email message parsable by the Mail gem.
|
7
7
|
#
|
8
8
|
# @param [Hash] params the content of the webhook
|
9
9
|
# @return [Array<Mail::Message>] messages
|
10
10
|
def transform(params)
|
11
|
-
[Mail.new(params
|
11
|
+
[Mail.new(params)]
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
data/lib/multi_mail/version.rb
CHANGED
data/lib/multi_mail.rb
CHANGED
@@ -2,7 +2,9 @@ require 'base64'
|
|
2
2
|
require 'cgi'
|
3
3
|
require 'json'
|
4
4
|
require 'openssl'
|
5
|
+
require 'iconv' unless RUBY_VERSION >= '1.9'
|
5
6
|
|
7
|
+
require 'faraday'
|
6
8
|
require 'mail'
|
7
9
|
require 'multimap'
|
8
10
|
require 'rack'
|
@@ -12,6 +14,19 @@ module MultiMail
|
|
12
14
|
class Error < StandardError; end
|
13
15
|
# Raise if an incoming POST request is forged.
|
14
16
|
class ForgedRequest < MultiMail::Error; end
|
17
|
+
# Raise if an API key is invalid.
|
18
|
+
class InvalidAPIKey < MultiMail::Error; end
|
19
|
+
|
20
|
+
# Raise if a message is invalid.
|
21
|
+
class InvalidMessage < MultiMail::Error; end
|
22
|
+
# Raise if a message has no sender.
|
23
|
+
class MissingSender < InvalidMessage; end
|
24
|
+
# Raise if a message has no recipients.
|
25
|
+
class MissingRecipients < InvalidMessage; end
|
26
|
+
# Raise if a message has no subject.
|
27
|
+
class MissingSubject < InvalidMessage; end
|
28
|
+
# Raise if a message has no body.
|
29
|
+
class MissingBody < InvalidMessage; end
|
15
30
|
|
16
31
|
class << self
|
17
32
|
# @return [RegExp] a message whose subject matches this pattern will be
|
@@ -79,6 +94,6 @@ end
|
|
79
94
|
|
80
95
|
require 'multi_mail/service'
|
81
96
|
require 'multi_mail/receiver'
|
97
|
+
require 'multi_mail/message/base'
|
82
98
|
require 'multi_mail/receiver/base'
|
83
|
-
require 'multi_mail/sender'
|
84
99
|
require 'multi_mail/sender/base'
|
data/multi_mail.gemspec
CHANGED
@@ -15,6 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
|
18
|
+
s.add_runtime_dependency 'faraday', '~> 0.8.0'
|
18
19
|
s.add_runtime_dependency 'mail', '~> 2.5.3' # Rails 3.2.13, less buggy than 2.4.x
|
19
20
|
s.add_runtime_dependency 'multimap', '~> 1.1.2'
|
20
21
|
s.add_runtime_dependency 'rack', '~> 1.4'
|
@@ -24,9 +25,11 @@ Gem::Specification.new do |s|
|
|
24
25
|
s.add_development_dependency 'json', '~> 1.7.7' # to silence coveralls warning
|
25
26
|
s.add_development_dependency 'rake'
|
26
27
|
s.add_development_dependency 'rspec', '~> 2.10'
|
28
|
+
s.add_development_dependency 'vcr', '~> 2.0'
|
27
29
|
|
28
30
|
# For Rake tasks
|
29
|
-
s.add_development_dependency 'mandrill-api', '~> 1.0.
|
31
|
+
s.add_development_dependency 'mandrill-api', '~> 1.0.35'
|
30
32
|
s.add_development_dependency 'postmark'
|
31
33
|
s.add_development_dependency 'rest-client', '~> 1.6.7'
|
34
|
+
s.add_development_dependency 'sendgrid_webapi'
|
32
35
|
end
|
Binary file
|
@@ -0,0 +1,13 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Content-Length: 7575
|
3
|
+
Content-Type: application/x-www-form-urlencoded
|
4
|
+
X-Request-Start: 1368728762873
|
5
|
+
X-Forwarded-Proto: http
|
6
|
+
X-Forwarded-Port: 80
|
7
|
+
X-Forwarded-For: 198.61.253.119
|
8
|
+
User-Agent: Python-urllib/2.7
|
9
|
+
Host: rackbin.herokuapp.com
|
10
|
+
Connection: close
|
11
|
+
Version: HTTP/1.1
|
12
|
+
|
13
|
+
recipient=foo%2Bbar%40multimail.mailgun.org&sender=james%40opennorth.ca&subject=&from=James+McKinney+%3Cjames%40opennorth.ca%3E&Received=by+luna.mailgun.net+with+SMTP+mgrt+8742233976457%3B+Thu%2C+16+May+2013+18%3A26%3A02+%2B0000&X-Envelope-From=%3Cjames%40opennorth.ca%3E&Received=from+mail-ie0-f176.google.com+%28mail-ie0-f176.google.com+%5B209.85.223.176%5D%29+by+mxa.mailgun.org+with+ESMTP+id+519524b1.6324fb0-in1%3B+Thu%2C+16+May+2013+18%3A25%3A53+-0000+%28UTC%29&Received=by+mail-ie0-f176.google.com+with+SMTP+id+at1so7220895iec.35+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E%3B+Thu%2C+16+May+2013+11%3A25%3A52+-0700+%28PDT%29&X-Google-Dkim-Signature=v%3D1%3B+a%3Drsa-sha256%3B+c%3Drelaxed%2Frelaxed%3B+d%3Dgoogle.com%3B+s%3D20120113%3B+h%3Dfrom%3Acontent-type%3Acontent-transfer-encoding%3Asubject%3Adate%3Amessage-id+%3Ato%3Amime-version%3Ax-mailer%3Ax-gm-message-state%3B+bh%3D47DEQpj8HBSa%2B%2FTImW%2B5JCeuQeRkm5NMpJWZG3hSuFU%3D%3B+b%3DlBjUT6ywRw8lW1OGr5YqUZwSA6fjnu9sTtDqJ%2BRX9QxXE2b8qISzynqB5aieVHZMlw+F7IiBZwxZcjTcXNGqaSZePmYfTeK7jYnHtPN3hSVYSdjEnJPweaNpTG8YEfW30MjTByX+k4kl8s6Ne1YKM9spIFYo4w40iWRAqQm2GWlw7IZ2NwiBl4EfOYBL%2BgA%2BRyBoc0TM%2F%2F64+T9Yhjffl1mp%2BcSDSAVcqrXfNs84%2FFwZqzyBSkvtledaLVGi23AJ6%2BY8bBBtN9ugYp4Tx+HZvMwbFr0fHQFesJtfBwNCvXy3gk16illqbLFDHBw8CqZjMXBbL%2FOQwAX0zVzcSI1bEq+nmsw%3D%3D&X-Received=by+10.50.131.137+with+SMTP+id+om9mr381819igb.1.1368728752881%3B+Thu%2C+16+May+2013+11%3A25%3A52+-0700+%28PDT%29&Return-Path=%3Cjames%40opennorth.ca%3E&Received=from+%5B192.168.0.105%5D+%28%5B69.165.208.137%5D%29+by+mx.google.com+with+ESMTPSA+id+d9sm5269077igr.4.2013.05.16.11.25.50+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E+%28version%3DTLSv1+cipher%3DRC4-SHA+bits%3D128%2F128%29%3B+Thu%2C+16+May+2013+11%3A25%3A51+-0700+%28PDT%29&From=James+McKinney+%3Cjames%40opennorth.ca%3E&Content-Type=text%2Fplain&Content-Transfer-Encoding=7bit&Subject=&Date=Thu%2C+16+May+2013+14%3A25%3A49+-0400&Message-Id=%3CDD2D5E91-DC27-4DB1-8E9E-DC5767D35B53%40opennorth.ca%3E&To=foo%2Bbar%40multimail.mailgun.org&Mime-Version=1.0+%28Apple+Message+framework+v1283%29&X-Mailer=Apple+Mail+%282.1283%29&X-Gm-Message-State=ALoCoQlaZGqu6QdEEydVPntY6%2FUZJzH7yUT7oE7uV%2FEvFn%2FXSZ4zMOT9owx5X3BXokYI9AyXtQiM&X-Mailgun-Sflag=No&X-Mailgun-Sscore=0.0&X-Mailgun-Spf=Neutral&X-Mailgun-Incoming=Yes&message-headers=%5B%5B%22Received%22%2C+%22by+luna.mailgun.net+with+SMTP+mgrt+8742233976457%3B+Thu%2C+16+May+2013+18%3A26%3A02+%2B0000%22%5D%2C+%5B%22X-Envelope-From%22%2C+%22%3Cjames%40opennorth.ca%3E%22%5D%2C+%5B%22Received%22%2C+%22from+mail-ie0-f176.google.com+%28mail-ie0-f176.google.com+%5B209.85.223.176%5D%29+by+mxa.mailgun.org+with+ESMTP+id+519524b1.6324fb0-in1%3B+Thu%2C+16+May+2013+18%3A25%3A53+-0000+%28UTC%29%22%5D%2C+%5B%22Received%22%2C+%22by+mail-ie0-f176.google.com+with+SMTP+id+at1so7220895iec.35+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E%3B+Thu%2C+16+May+2013+11%3A25%3A52+-0700+%28PDT%29%22%5D%2C+%5B%22X-Google-Dkim-Signature%22%2C+%22v%3D1%3B+a%3Drsa-sha256%3B+c%3Drelaxed%2Frelaxed%3B+d%3Dgoogle.com%3B+s%3D20120113%3B+h%3Dfrom%3Acontent-type%3Acontent-transfer-encoding%3Asubject%3Adate%3Amessage-id+%3Ato%3Amime-version%3Ax-mailer%3Ax-gm-message-state%3B+bh%3D47DEQpj8HBSa%2B%2FTImW%2B5JCeuQeRkm5NMpJWZG3hSuFU%3D%3B+b%3DlBjUT6ywRw8lW1OGr5YqUZwSA6fjnu9sTtDqJ%2BRX9QxXE2b8qISzynqB5aieVHZMlw+F7IiBZwxZcjTcXNGqaSZePmYfTeK7jYnHtPN3hSVYSdjEnJPweaNpTG8YEfW30MjTByX+k4kl8s6Ne1YKM9spIFYo4w40iWRAqQm2GWlw7IZ2NwiBl4EfOYBL%2BgA%2BRyBoc0TM%2F%2F64+T9Yhjffl1mp%2BcSDSAVcqrXfNs84%2FFwZqzyBSkvtledaLVGi23AJ6%2BY8bBBtN9ugYp4Tx+HZvMwbFr0fHQFesJtfBwNCvXy3gk16illqbLFDHBw8CqZjMXBbL%2FOQwAX0zVzcSI1bEq+nmsw%3D%3D%22%5D%2C+%5B%22X-Received%22%2C+%22by+10.50.131.137+with+SMTP+id+om9mr381819igb.1.1368728752881%3B+Thu%2C+16+May+2013+11%3A25%3A52+-0700+%28PDT%29%22%5D%2C+%5B%22Return-Path%22%2C+%22%3Cjames%40opennorth.ca%3E%22%5D%2C+%5B%22Received%22%2C+%22from+%5B192.168.0.105%5D+%28%5B69.165.208.137%5D%29+by+mx.google.com+with+ESMTPSA+id+d9sm5269077igr.4.2013.05.16.11.25.50+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E+%28version%3DTLSv1+cipher%3DRC4-SHA+bits%3D128%2F128%29%3B+Thu%2C+16+May+2013+11%3A25%3A51+-0700+%28PDT%29%22%5D%2C+%5B%22From%22%2C+%22James+McKinney+%3Cjames%40opennorth.ca%3E%22%5D%2C+%5B%22Content-Type%22%2C+%22text%2Fplain%22%5D%2C+%5B%22Content-Transfer-Encoding%22%2C+%227bit%22%5D%2C+%5B%22Subject%22%2C+%22%22%5D%2C+%5B%22Date%22%2C+%22Thu%2C+16+May+2013+14%3A25%3A49+-0400%22%5D%2C+%5B%22Message-Id%22%2C+%22%3CDD2D5E91-DC27-4DB1-8E9E-DC5767D35B53%40opennorth.ca%3E%22%5D%2C+%5B%22To%22%2C+%22foo%2Bbar%40multimail.mailgun.org%22%5D%2C+%5B%22Mime-Version%22%2C+%221.0+%28Apple+Message+framework+v1283%29%22%5D%2C+%5B%22X-Mailer%22%2C+%22Apple+Mail+%282.1283%29%22%5D%2C+%5B%22X-Gm-Message-State%22%2C+%22ALoCoQlaZGqu6QdEEydVPntY6%2FUZJzH7yUT7oE7uV%2FEvFn%2FXSZ4zMOT9owx5X3BXokYI9AyXtQiM%22%5D%2C+%5B%22X-Mailgun-Sflag%22%2C+%22No%22%5D%2C+%5B%22X-Mailgun-Sscore%22%2C+%220.0%22%5D%2C+%5B%22X-Mailgun-Spf%22%2C+%22Neutral%22%5D%2C+%5B%22X-Mailgun-Incoming%22%2C+%22Yes%22%5D%5D×tamp=1368728762&token=9re7ap1c3w2tl3p34059w2v7yqz0s-l59r1tv4akbt1il87qd2&signature=xxx&body-mime=Received%3A+by+luna.mailgun.net+with+SMTP+mgrt+8742233976457%3B+Thu%2C+16+May+2013%0A+18%3A26%3A02+%2B0000%0D%0AX-Envelope-From%3A+%3Cjames%40opennorth.ca%3E%0D%0AReceived%3A+from+mail-ie0-f176.google.com+%28mail-ie0-f176.google.com%0A+%5B209.85.223.176%5D%29+by+mxa.mailgun.org+with+ESMTP+id+519524b1.6324fb0-in1%3B%0A+Thu%2C+16+May+2013+18%3A25%3A53+-0000+%28UTC%29%0D%0AReceived%3A+by+mail-ie0-f176.google.com+with+SMTP+id+at1so7220895iec.35+for%0A+%3Cfoo%2Bbar%40multimail.mailgun.org%3E%3B+Thu%2C+16+May+2013+11%3A25%3A52+-0700+%28PDT%29%0D%0AX-Google-Dkim-Signature%3A+v%3D1%3B+a%3Drsa-sha256%3B+c%3Drelaxed%2Frelaxed%3B+d%3Dgoogle.com%3B%0A+s%3D20120113%3B%0A+h%3Dfrom%3Acontent-type%3Acontent-transfer-encoding%3Asubject%3Adate%3Amessage-id%0A+%3Ato%3Amime-version%3Ax-mailer%3Ax-gm-message-state%3B%0A+bh%3D47DEQpj8HBSa%2B%2FTImW%2B5JCeuQeRkm5NMpJWZG3hSuFU%3D%3B%0A+b%3DlBjUT6ywRw8lW1OGr5YqUZwSA6fjnu9sTtDqJ%2BRX9QxXE2b8qISzynqB5aieVHZMlw%0A+F7IiBZwxZcjTcXNGqaSZePmYfTeK7jYnHtPN3hSVYSdjEnJPweaNpTG8YEfW30MjTByX%0A+k4kl8s6Ne1YKM9spIFYo4w40iWRAqQm2GWlw7IZ2NwiBl4EfOYBL%2BgA%2BRyBoc0TM%2F%2F64%0A+T9Yhjffl1mp%2BcSDSAVcqrXfNs84%2FFwZqzyBSkvtledaLVGi23AJ6%2BY8bBBtN9ugYp4Tx%0A+HZvMwbFr0fHQFesJtfBwNCvXy3gk16illqbLFDHBw8CqZjMXBbL%2FOQwAX0zVzcSI1bEq+nmsw%3D%3D%0D%0AX-Received%3A+by+10.50.131.137+with+SMTP+id+om9mr381819igb.1.1368728752881%3B%0A+Thu%2C+16+May+2013+11%3A25%3A52+-0700+%28PDT%29%0D%0AReturn-Path%3A+%3Cjames%40opennorth.ca%3E%0D%0AReceived%3A+from+%5B192.168.0.105%5D+%28%5B69.165.208.137%5D%29+by+mx.google.com+with%0A+ESMTPSA+id+d9sm5269077igr.4.2013.05.16.11.25.50+for%0A+%3Cfoo%2Bbar%40multimail.mailgun.org%3E+%28version%3DTLSv1+cipher%3DRC4-SHA%0A+bits%3D128%2F128%29%3B+Thu%2C+16+May+2013+11%3A25%3A51+-0700+%28PDT%29%0D%0AFrom%3A+James+McKinney+%3Cjames%40opennorth.ca%3E%0D%0AContent-Type%3A+text%2Fplain%0D%0AContent-Transfer-Encoding%3A+7bit%0D%0ASubject%3A+%0D%0ADate%3A+Thu%2C+16+May+2013+14%3A25%3A49+-0400%0D%0AMessage-Id%3A+%3CDD2D5E91-DC27-4DB1-8E9E-DC5767D35B53%40opennorth.ca%3E%0D%0ATo%3A+foo%2Bbar%40multimail.mailgun.org%0D%0AMime-Version%3A+1.0+%28Apple+Message+framework+v1283%29%0D%0AX-Mailer%3A+Apple+Mail+%282.1283%29%0D%0AX-Gm-Message-State%3A+ALoCoQlaZGqu6QdEEydVPntY6%2FUZJzH7yUT7oE7uV%2FEvFn%2FXSZ4zMOT9owx5X3BXokYI9AyXtQiM%0D%0AX-Mailgun-Sflag%3A+No%0D%0AX-Mailgun-Sscore%3A+0.0%0D%0AX-Mailgun-Spf%3A+Neutral%0D%0AX-Mailgun-Incoming%3A+Yes%0D%0A%0D%0A
|
@@ -0,0 +1,13 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Content-Length: 7575
|
3
|
+
Content-Type: application/x-www-form-urlencoded
|
4
|
+
X-Request-Start: 1368728762873
|
5
|
+
X-Forwarded-Proto: http
|
6
|
+
X-Forwarded-Port: 80
|
7
|
+
X-Forwarded-For: 198.61.253.119
|
8
|
+
User-Agent: Python-urllib/2.7
|
9
|
+
Host: rackbin.herokuapp.com
|
10
|
+
Connection: close
|
11
|
+
Version: HTTP/1.1
|
12
|
+
|
13
|
+
recipient=foo%2Bbar%40multimail.mailgun.org&sender=james%40opennorth.ca&subject=&from=James+McKinney+%3Cjames%40opennorth.ca%3E&Received=by+luna.mailgun.net+with+SMTP+mgrt+8742233976457%3B+Thu%2C+16+May+2013+18%3A26%3A02+%2B0000&X-Envelope-From=%3Cjames%40opennorth.ca%3E&Received=from+mail-ie0-f176.google.com+%28mail-ie0-f176.google.com+%5B209.85.223.176%5D%29+by+mxa.mailgun.org+with+ESMTP+id+519524b1.6324fb0-in1%3B+Thu%2C+16+May+2013+18%3A25%3A53+-0000+%28UTC%29&Received=by+mail-ie0-f176.google.com+with+SMTP+id+at1so7220895iec.35+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E%3B+Thu%2C+16+May+2013+11%3A25%3A52+-0700+%28PDT%29&X-Google-Dkim-Signature=v%3D1%3B+a%3Drsa-sha256%3B+c%3Drelaxed%2Frelaxed%3B+d%3Dgoogle.com%3B+s%3D20120113%3B+h%3Dfrom%3Acontent-type%3Acontent-transfer-encoding%3Asubject%3Adate%3Amessage-id+%3Ato%3Amime-version%3Ax-mailer%3Ax-gm-message-state%3B+bh%3D47DEQpj8HBSa%2B%2FTImW%2B5JCeuQeRkm5NMpJWZG3hSuFU%3D%3B+b%3DlBjUT6ywRw8lW1OGr5YqUZwSA6fjnu9sTtDqJ%2BRX9QxXE2b8qISzynqB5aieVHZMlw+F7IiBZwxZcjTcXNGqaSZePmYfTeK7jYnHtPN3hSVYSdjEnJPweaNpTG8YEfW30MjTByX+k4kl8s6Ne1YKM9spIFYo4w40iWRAqQm2GWlw7IZ2NwiBl4EfOYBL%2BgA%2BRyBoc0TM%2F%2F64+T9Yhjffl1mp%2BcSDSAVcqrXfNs84%2FFwZqzyBSkvtledaLVGi23AJ6%2BY8bBBtN9ugYp4Tx+HZvMwbFr0fHQFesJtfBwNCvXy3gk16illqbLFDHBw8CqZjMXBbL%2FOQwAX0zVzcSI1bEq+nmsw%3D%3D&X-Received=by+10.50.131.137+with+SMTP+id+om9mr381819igb.1.1368728752881%3B+Thu%2C+16+May+2013+11%3A25%3A52+-0700+%28PDT%29&Return-Path=%3Cjames%40opennorth.ca%3E&Received=from+%5B192.168.0.105%5D+%28%5B69.165.208.137%5D%29+by+mx.google.com+with+ESMTPSA+id+d9sm5269077igr.4.2013.05.16.11.25.50+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E+%28version%3DTLSv1+cipher%3DRC4-SHA+bits%3D128%2F128%29%3B+Thu%2C+16+May+2013+11%3A25%3A51+-0700+%28PDT%29&From=James+McKinney+%3Cjames%40opennorth.ca%3E&Content-Type=text%2Fplain&Content-Transfer-Encoding=7bit&Subject=&Date=Thu%2C+16+May+2013+14%3A25%3A49+-0400&Message-Id=%3CDD2D5E91-DC27-4DB1-8E9E-DC5767D35B53%40opennorth.ca%3E&To=foo%2Bbar%40multimail.mailgun.org&Mime-Version=1.0+%28Apple+Message+framework+v1283%29&X-Mailer=Apple+Mail+%282.1283%29&X-Gm-Message-State=ALoCoQlaZGqu6QdEEydVPntY6%2FUZJzH7yUT7oE7uV%2FEvFn%2FXSZ4zMOT9owx5X3BXokYI9AyXtQiM&X-Mailgun-Sflag=No&X-Mailgun-Sscore=0.0&X-Mailgun-Spf=Neutral&X-Mailgun-Incoming=Yes&message-headers=%5B%5B%22Received%22%2C+%22by+luna.mailgun.net+with+SMTP+mgrt+8742233976457%3B+Thu%2C+16+May+2013+18%3A26%3A02+%2B0000%22%5D%2C+%5B%22X-Envelope-From%22%2C+%22%3Cjames%40opennorth.ca%3E%22%5D%2C+%5B%22Received%22%2C+%22from+mail-ie0-f176.google.com+%28mail-ie0-f176.google.com+%5B209.85.223.176%5D%29+by+mxa.mailgun.org+with+ESMTP+id+519524b1.6324fb0-in1%3B+Thu%2C+16+May+2013+18%3A25%3A53+-0000+%28UTC%29%22%5D%2C+%5B%22Received%22%2C+%22by+mail-ie0-f176.google.com+with+SMTP+id+at1so7220895iec.35+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E%3B+Thu%2C+16+May+2013+11%3A25%3A52+-0700+%28PDT%29%22%5D%2C+%5B%22X-Google-Dkim-Signature%22%2C+%22v%3D1%3B+a%3Drsa-sha256%3B+c%3Drelaxed%2Frelaxed%3B+d%3Dgoogle.com%3B+s%3D20120113%3B+h%3Dfrom%3Acontent-type%3Acontent-transfer-encoding%3Asubject%3Adate%3Amessage-id+%3Ato%3Amime-version%3Ax-mailer%3Ax-gm-message-state%3B+bh%3D47DEQpj8HBSa%2B%2FTImW%2B5JCeuQeRkm5NMpJWZG3hSuFU%3D%3B+b%3DlBjUT6ywRw8lW1OGr5YqUZwSA6fjnu9sTtDqJ%2BRX9QxXE2b8qISzynqB5aieVHZMlw+F7IiBZwxZcjTcXNGqaSZePmYfTeK7jYnHtPN3hSVYSdjEnJPweaNpTG8YEfW30MjTByX+k4kl8s6Ne1YKM9spIFYo4w40iWRAqQm2GWlw7IZ2NwiBl4EfOYBL%2BgA%2BRyBoc0TM%2F%2F64+T9Yhjffl1mp%2BcSDSAVcqrXfNs84%2FFwZqzyBSkvtledaLVGi23AJ6%2BY8bBBtN9ugYp4Tx+HZvMwbFr0fHQFesJtfBwNCvXy3gk16illqbLFDHBw8CqZjMXBbL%2FOQwAX0zVzcSI1bEq+nmsw%3D%3D%22%5D%2C+%5B%22X-Received%22%2C+%22by+10.50.131.137+with+SMTP+id+om9mr381819igb.1.1368728752881%3B+Thu%2C+16+May+2013+11%3A25%3A52+-0700+%28PDT%29%22%5D%2C+%5B%22Return-Path%22%2C+%22%3Cjames%40opennorth.ca%3E%22%5D%2C+%5B%22Received%22%2C+%22from+%5B192.168.0.105%5D+%28%5B69.165.208.137%5D%29+by+mx.google.com+with+ESMTPSA+id+d9sm5269077igr.4.2013.05.16.11.25.50+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E+%28version%3DTLSv1+cipher%3DRC4-SHA+bits%3D128%2F128%29%3B+Thu%2C+16+May+2013+11%3A25%3A51+-0700+%28PDT%29%22%5D%2C+%5B%22From%22%2C+%22James+McKinney+%3Cjames%40opennorth.ca%3E%22%5D%2C+%5B%22Content-Type%22%2C+%22text%2Fplain%22%5D%2C+%5B%22Content-Transfer-Encoding%22%2C+%227bit%22%5D%2C+%5B%22Subject%22%2C+%22%22%5D%2C+%5B%22Date%22%2C+%22Thu%2C+16+May+2013+14%3A25%3A49+-0400%22%5D%2C+%5B%22Message-Id%22%2C+%22%3CDD2D5E91-DC27-4DB1-8E9E-DC5767D35B53%40opennorth.ca%3E%22%5D%2C+%5B%22To%22%2C+%22foo%2Bbar%40multimail.mailgun.org%22%5D%2C+%5B%22Mime-Version%22%2C+%221.0+%28Apple+Message+framework+v1283%29%22%5D%2C+%5B%22X-Mailer%22%2C+%22Apple+Mail+%282.1283%29%22%5D%2C+%5B%22X-Gm-Message-State%22%2C+%22ALoCoQlaZGqu6QdEEydVPntY6%2FUZJzH7yUT7oE7uV%2FEvFn%2FXSZ4zMOT9owx5X3BXokYI9AyXtQiM%22%5D%2C+%5B%22X-Mailgun-Sflag%22%2C+%22No%22%5D%2C+%5B%22X-Mailgun-Sscore%22%2C+%220.0%22%5D%2C+%5B%22X-Mailgun-Spf%22%2C+%22Neutral%22%5D%2C+%5B%22X-Mailgun-Incoming%22%2C+%22Yes%22%5D%5D×tamp=1368728762&token=9re7ap1c3w2tl3p34059w2v7yqz0s-l59r1tv4akbt1il87qd2&body-mime=Received%3A+by+luna.mailgun.net+with+SMTP+mgrt+8742233976457%3B+Thu%2C+16+May+2013%0A+18%3A26%3A02+%2B0000%0D%0AX-Envelope-From%3A+%3Cjames%40opennorth.ca%3E%0D%0AReceived%3A+from+mail-ie0-f176.google.com+%28mail-ie0-f176.google.com%0A+%5B209.85.223.176%5D%29+by+mxa.mailgun.org+with+ESMTP+id+519524b1.6324fb0-in1%3B%0A+Thu%2C+16+May+2013+18%3A25%3A53+-0000+%28UTC%29%0D%0AReceived%3A+by+mail-ie0-f176.google.com+with+SMTP+id+at1so7220895iec.35+for%0A+%3Cfoo%2Bbar%40multimail.mailgun.org%3E%3B+Thu%2C+16+May+2013+11%3A25%3A52+-0700+%28PDT%29%0D%0AX-Google-Dkim-Signature%3A+v%3D1%3B+a%3Drsa-sha256%3B+c%3Drelaxed%2Frelaxed%3B+d%3Dgoogle.com%3B%0A+s%3D20120113%3B%0A+h%3Dfrom%3Acontent-type%3Acontent-transfer-encoding%3Asubject%3Adate%3Amessage-id%0A+%3Ato%3Amime-version%3Ax-mailer%3Ax-gm-message-state%3B%0A+bh%3D47DEQpj8HBSa%2B%2FTImW%2B5JCeuQeRkm5NMpJWZG3hSuFU%3D%3B%0A+b%3DlBjUT6ywRw8lW1OGr5YqUZwSA6fjnu9sTtDqJ%2BRX9QxXE2b8qISzynqB5aieVHZMlw%0A+F7IiBZwxZcjTcXNGqaSZePmYfTeK7jYnHtPN3hSVYSdjEnJPweaNpTG8YEfW30MjTByX%0A+k4kl8s6Ne1YKM9spIFYo4w40iWRAqQm2GWlw7IZ2NwiBl4EfOYBL%2BgA%2BRyBoc0TM%2F%2F64%0A+T9Yhjffl1mp%2BcSDSAVcqrXfNs84%2FFwZqzyBSkvtledaLVGi23AJ6%2BY8bBBtN9ugYp4Tx%0A+HZvMwbFr0fHQFesJtfBwNCvXy3gk16illqbLFDHBw8CqZjMXBbL%2FOQwAX0zVzcSI1bEq+nmsw%3D%3D%0D%0AX-Received%3A+by+10.50.131.137+with+SMTP+id+om9mr381819igb.1.1368728752881%3B%0A+Thu%2C+16+May+2013+11%3A25%3A52+-0700+%28PDT%29%0D%0AReturn-Path%3A+%3Cjames%40opennorth.ca%3E%0D%0AReceived%3A+from+%5B192.168.0.105%5D+%28%5B69.165.208.137%5D%29+by+mx.google.com+with%0A+ESMTPSA+id+d9sm5269077igr.4.2013.05.16.11.25.50+for%0A+%3Cfoo%2Bbar%40multimail.mailgun.org%3E+%28version%3DTLSv1+cipher%3DRC4-SHA%0A+bits%3D128%2F128%29%3B+Thu%2C+16+May+2013+11%3A25%3A51+-0700+%28PDT%29%0D%0AFrom%3A+James+McKinney+%3Cjames%40opennorth.ca%3E%0D%0AContent-Type%3A+text%2Fplain%0D%0AContent-Transfer-Encoding%3A+7bit%0D%0ASubject%3A+%0D%0ADate%3A+Thu%2C+16+May+2013+14%3A25%3A49+-0400%0D%0AMessage-Id%3A+%3CDD2D5E91-DC27-4DB1-8E9E-DC5767D35B53%40opennorth.ca%3E%0D%0ATo%3A+foo%2Bbar%40multimail.mailgun.org%0D%0AMime-Version%3A+1.0+%28Apple+Message+framework+v1283%29%0D%0AX-Mailer%3A+Apple+Mail+%282.1283%29%0D%0AX-Gm-Message-State%3A+ALoCoQlaZGqu6QdEEydVPntY6%2FUZJzH7yUT7oE7uV%2FEvFn%2FXSZ4zMOT9owx5X3BXokYI9AyXtQiM%0D%0AX-Mailgun-Sflag%3A+No%0D%0AX-Mailgun-Sscore%3A+0.0%0D%0AX-Mailgun-Spf%3A+Neutral%0D%0AX-Mailgun-Incoming%3A+Yes%0D%0A%0D%0A
|
@@ -0,0 +1,13 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Content-Length: 7699
|
3
|
+
Content-Type: application/x-www-form-urlencoded
|
4
|
+
X-Request-Start: 1368728764084
|
5
|
+
X-Forwarded-Proto: http
|
6
|
+
X-Forwarded-Port: 80
|
7
|
+
X-Forwarded-For: 198.61.253.117
|
8
|
+
User-Agent: Python-urllib/2.7
|
9
|
+
Host: rackbin.herokuapp.com
|
10
|
+
Connection: close
|
11
|
+
Version: HTTP/1.1
|
12
|
+
|
13
|
+
recipient=foo%2Bbar%40multimail.mailgun.org&sender=james%40opennorth.ca&subject=&from=James+McKinney+%3Cjames%40opennorth.ca%3E&Received=by+luna.mailgun.net+with+SMTP+mgrt+8768977185541%3B+Thu%2C+16+May+2013+18%3A26%3A03+%2B0000&X-Envelope-From=%3Cjames%40opennorth.ca%3E&Received=from+mail-ia0-f174.google.com+%28mail-ia0-f174.google.com+%5B209.85.210.174%5D%29+by+mxa.mailgun.org+with+ESMTP+id+519524b4.60f61f0-in1%3B+Thu%2C+16+May+2013+18%3A25%3A56+-0000+%28UTC%29&Received=by+mail-ia0-f174.google.com+with+SMTP+id+r13so1992106iar.19+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E%3B+Thu%2C+16+May+2013+11%3A25%3A55+-0700+%28PDT%29&X-Google-Dkim-Signature=v%3D1%3B+a%3Drsa-sha256%3B+c%3Drelaxed%2Frelaxed%3B+d%3Dgoogle.com%3B+s%3D20120113%3B+h%3Dfrom%3Acontent-type%3Acontent-transfer-encoding%3Asubject%3Adate%3Amessage-id+%3Ato%3Amime-version%3Ax-mailer%3Ax-gm-message-state%3B+bh%3Did84uDPa9SMZAVd%2Bg2pYg3Hl9aPfnapoGlOygxrIuV4%3D%3B+b%3DKtPiOX7uzBJtnhdXzQDnhDooMHIiDmSO9L%2BYACP2GuyIZqyeG2jbrAtvfrN4ty0l8x+yKsLweIaf1HfciEbfgO7LNU5GcTozZT%2B%2B2VYOzEwDXLSLB8ei5oWJlACiR3u8C26%2BA3z+L4%2Fx9ODWtS2bnbkVlEYdpBgT2ZGZU4TCT7V5QinbE3UR2lbKQ6e098yn2cT3Ri4PxdYC+tg0boJ9sASbn7vyUZCbFcrts1UnG0fAP21CuTw%2BEtsT8saEArMnbwgubsYaD9lAwfXtx+iK7h4s9Vfjx%2BeMABLFigI9iI37Zt5MD1zKNnjoNW2HOdkx3ErYLEIjcBQXP5hNqCtBpc+mALg%3D%3D&X-Received=by+10.50.128.44+with+SMTP+id+nl12mr386515igb.0.1368728755786%3B+Thu%2C+16+May+2013+11%3A25%3A55+-0700+%28PDT%29&Return-Path=%3Cjames%40opennorth.ca%3E&Received=from+%5B192.168.0.105%5D+%28%5B69.165.208.137%5D%29+by+mx.google.com+with+ESMTPSA+id+d9sm5269077igr.4.2013.05.16.11.25.53+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E+%28version%3DTLSv1+cipher%3DRC4-SHA+bits%3D128%2F128%29%3B+Thu%2C+16+May+2013+11%3A25%3A54+-0700+%28PDT%29&From=James+McKinney+%3Cjames%40opennorth.ca%3E&Content-Type=text%2Fplain%3B+charset%3D%22us-ascii%22&Content-Transfer-Encoding=7bit&Subject=&Date=Thu%2C+16+May+2013+14%3A25%3A53+-0400&Message-Id=%3C471C0153-45E9-409E-8BE0-C11DCECE8527%40opennorth.ca%3E&To=foo%2Bbar%40multimail.mailgun.org&Mime-Version=1.0+%28Apple+Message+framework+v1283%29&X-Mailer=Apple+Mail+%282.1283%29&X-Gm-Message-State=ALoCoQkHRHyVSpySptrwaD7DCna5bmlrZ5MZLbx9a0a2liuD1YqXkZhOAkyNmQStTxrRGUAqqweM&X-Mailgun-Sflag=No&X-Mailgun-Sscore=0.0&X-Mailgun-Spf=Neutral&X-Mailgun-Incoming=Yes&message-headers=%5B%5B%22Received%22%2C+%22by+luna.mailgun.net+with+SMTP+mgrt+8768977185541%3B+Thu%2C+16+May+2013+18%3A26%3A03+%2B0000%22%5D%2C+%5B%22X-Envelope-From%22%2C+%22%3Cjames%40opennorth.ca%3E%22%5D%2C+%5B%22Received%22%2C+%22from+mail-ia0-f174.google.com+%28mail-ia0-f174.google.com+%5B209.85.210.174%5D%29+by+mxa.mailgun.org+with+ESMTP+id+519524b4.60f61f0-in1%3B+Thu%2C+16+May+2013+18%3A25%3A56+-0000+%28UTC%29%22%5D%2C+%5B%22Received%22%2C+%22by+mail-ia0-f174.google.com+with+SMTP+id+r13so1992106iar.19+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E%3B+Thu%2C+16+May+2013+11%3A25%3A55+-0700+%28PDT%29%22%5D%2C+%5B%22X-Google-Dkim-Signature%22%2C+%22v%3D1%3B+a%3Drsa-sha256%3B+c%3Drelaxed%2Frelaxed%3B+d%3Dgoogle.com%3B+s%3D20120113%3B+h%3Dfrom%3Acontent-type%3Acontent-transfer-encoding%3Asubject%3Adate%3Amessage-id+%3Ato%3Amime-version%3Ax-mailer%3Ax-gm-message-state%3B+bh%3Did84uDPa9SMZAVd%2Bg2pYg3Hl9aPfnapoGlOygxrIuV4%3D%3B+b%3DKtPiOX7uzBJtnhdXzQDnhDooMHIiDmSO9L%2BYACP2GuyIZqyeG2jbrAtvfrN4ty0l8x+yKsLweIaf1HfciEbfgO7LNU5GcTozZT%2B%2B2VYOzEwDXLSLB8ei5oWJlACiR3u8C26%2BA3z+L4%2Fx9ODWtS2bnbkVlEYdpBgT2ZGZU4TCT7V5QinbE3UR2lbKQ6e098yn2cT3Ri4PxdYC+tg0boJ9sASbn7vyUZCbFcrts1UnG0fAP21CuTw%2BEtsT8saEArMnbwgubsYaD9lAwfXtx+iK7h4s9Vfjx%2BeMABLFigI9iI37Zt5MD1zKNnjoNW2HOdkx3ErYLEIjcBQXP5hNqCtBpc+mALg%3D%3D%22%5D%2C+%5B%22X-Received%22%2C+%22by+10.50.128.44+with+SMTP+id+nl12mr386515igb.0.1368728755786%3B+Thu%2C+16+May+2013+11%3A25%3A55+-0700+%28PDT%29%22%5D%2C+%5B%22Return-Path%22%2C+%22%3Cjames%40opennorth.ca%3E%22%5D%2C+%5B%22Received%22%2C+%22from+%5B192.168.0.105%5D+%28%5B69.165.208.137%5D%29+by+mx.google.com+with+ESMTPSA+id+d9sm5269077igr.4.2013.05.16.11.25.53+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E+%28version%3DTLSv1+cipher%3DRC4-SHA+bits%3D128%2F128%29%3B+Thu%2C+16+May+2013+11%3A25%3A54+-0700+%28PDT%29%22%5D%2C+%5B%22From%22%2C+%22James+McKinney+%3Cjames%40opennorth.ca%3E%22%5D%2C+%5B%22Content-Type%22%2C+%22text%2Fplain%3B+charset%3D%5C%22us-ascii%5C%22%22%5D%2C+%5B%22Content-Transfer-Encoding%22%2C+%227bit%22%5D%2C+%5B%22Subject%22%2C+%22%22%5D%2C+%5B%22Date%22%2C+%22Thu%2C+16+May+2013+14%3A25%3A53+-0400%22%5D%2C+%5B%22Message-Id%22%2C+%22%3C471C0153-45E9-409E-8BE0-C11DCECE8527%40opennorth.ca%3E%22%5D%2C+%5B%22To%22%2C+%22foo%2Bbar%40multimail.mailgun.org%22%5D%2C+%5B%22Mime-Version%22%2C+%221.0+%28Apple+Message+framework+v1283%29%22%5D%2C+%5B%22X-Mailer%22%2C+%22Apple+Mail+%282.1283%29%22%5D%2C+%5B%22X-Gm-Message-State%22%2C+%22ALoCoQkHRHyVSpySptrwaD7DCna5bmlrZ5MZLbx9a0a2liuD1YqXkZhOAkyNmQStTxrRGUAqqweM%22%5D%2C+%5B%22X-Mailgun-Sflag%22%2C+%22No%22%5D%2C+%5B%22X-Mailgun-Sscore%22%2C+%220.0%22%5D%2C+%5B%22X-Mailgun-Spf%22%2C+%22Neutral%22%5D%2C+%5B%22X-Mailgun-Incoming%22%2C+%22Yes%22%5D%5D×tamp=1368728763&token=9f4o7ro45ugsca3i48h4zg4itiixh0vh7qz8rpnuda3bdyc181&signature=53acdf9dd008679a3b33780b9693efa5ea659da67f48d78d2ecc28a1235e2c67&body-mime=Received%3A+by+luna.mailgun.net+with+SMTP+mgrt+8768977185541%3B+Thu%2C+16+May+2013%0A+18%3A26%3A03+%2B0000%0D%0AX-Envelope-From%3A+%3Cjames%40opennorth.ca%3E%0D%0AReceived%3A+from+mail-ia0-f174.google.com+%28mail-ia0-f174.google.com%0A+%5B209.85.210.174%5D%29+by+mxa.mailgun.org+with+ESMTP+id+519524b4.60f61f0-in1%3B%0A+Thu%2C+16+May+2013+18%3A25%3A56+-0000+%28UTC%29%0D%0AReceived%3A+by+mail-ia0-f174.google.com+with+SMTP+id+r13so1992106iar.19+for%0A+%3Cfoo%2Bbar%40multimail.mailgun.org%3E%3B+Thu%2C+16+May+2013+11%3A25%3A55+-0700+%28PDT%29%0D%0AX-Google-Dkim-Signature%3A+v%3D1%3B+a%3Drsa-sha256%3B+c%3Drelaxed%2Frelaxed%3B+d%3Dgoogle.com%3B%0A+s%3D20120113%3B%0A+h%3Dfrom%3Acontent-type%3Acontent-transfer-encoding%3Asubject%3Adate%3Amessage-id%0A+%3Ato%3Amime-version%3Ax-mailer%3Ax-gm-message-state%3B%0A+bh%3Did84uDPa9SMZAVd%2Bg2pYg3Hl9aPfnapoGlOygxrIuV4%3D%3B%0A+b%3DKtPiOX7uzBJtnhdXzQDnhDooMHIiDmSO9L%2BYACP2GuyIZqyeG2jbrAtvfrN4ty0l8x%0A+yKsLweIaf1HfciEbfgO7LNU5GcTozZT%2B%2B2VYOzEwDXLSLB8ei5oWJlACiR3u8C26%2BA3z%0A+L4%2Fx9ODWtS2bnbkVlEYdpBgT2ZGZU4TCT7V5QinbE3UR2lbKQ6e098yn2cT3Ri4PxdYC%0A+tg0boJ9sASbn7vyUZCbFcrts1UnG0fAP21CuTw%2BEtsT8saEArMnbwgubsYaD9lAwfXtx%0A+iK7h4s9Vfjx%2BeMABLFigI9iI37Zt5MD1zKNnjoNW2HOdkx3ErYLEIjcBQXP5hNqCtBpc+mALg%3D%3D%0D%0AX-Received%3A+by+10.50.128.44+with+SMTP+id+nl12mr386515igb.0.1368728755786%3B%0A+Thu%2C+16+May+2013+11%3A25%3A55+-0700+%28PDT%29%0D%0AReturn-Path%3A+%3Cjames%40opennorth.ca%3E%0D%0AReceived%3A+from+%5B192.168.0.105%5D+%28%5B69.165.208.137%5D%29+by+mx.google.com+with%0A+ESMTPSA+id+d9sm5269077igr.4.2013.05.16.11.25.53+for%0A+%3Cfoo%2Bbar%40multimail.mailgun.org%3E+%28version%3DTLSv1+cipher%3DRC4-SHA%0A+bits%3D128%2F128%29%3B+Thu%2C+16+May+2013+11%3A25%3A54+-0700+%28PDT%29%0D%0AFrom%3A+James+McKinney+%3Cjames%40opennorth.ca%3E%0D%0AContent-Type%3A+text%2Fplain%3B+charset%3D%22us-ascii%22%0D%0AContent-Transfer-Encoding%3A+7bit%0D%0ASubject%3A+%0D%0ADate%3A+Thu%2C+16+May+2013+14%3A25%3A53+-0400%0D%0AMessage-Id%3A+%3C471C0153-45E9-409E-8BE0-C11DCECE8527%40opennorth.ca%3E%0D%0ATo%3A+foo%2Bbar%40multimail.mailgun.org%0D%0AMime-Version%3A+1.0+%28Apple+Message+framework+v1283%29%0D%0AX-Mailer%3A+Apple+Mail+%282.1283%29%0D%0AX-Gm-Message-State%3A+ALoCoQkHRHyVSpySptrwaD7DCna5bmlrZ5MZLbx9a0a2liuD1YqXkZhOAkyNmQStTxrRGUAqqweM%0D%0AX-Mailgun-Sflag%3A+No%0D%0AX-Mailgun-Sscore%3A+0.0%0D%0AX-Mailgun-Spf%3A+Neutral%0D%0AX-Mailgun-Incoming%3A+Yes%0D%0A%0D%0AXJS%2AC4JDBQADN1.NSBN3%2A2IDNEN%2AGTUBE-STANDARD-ANTI-UBE-TEST-EMAIL%2AC.34X
|
@@ -0,0 +1,13 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Content-Length: 11133
|
3
|
+
Content-Type: application/x-www-form-urlencoded
|
4
|
+
X-Request-Start: 1368728697065
|
5
|
+
X-Forwarded-Proto: http
|
6
|
+
X-Forwarded-Port: 80
|
7
|
+
X-Forwarded-For: 198.61.253.119
|
8
|
+
User-Agent: Python-urllib/2.7
|
9
|
+
Host: rackbin.herokuapp.com
|
10
|
+
Connection: close
|
11
|
+
Version: HTTP/1.1
|
12
|
+
|
13
|
+
recipient=foo%2Bbar%40multimail.mailgun.org&sender=james%40opennorth.ca&subject=Test&from=James+McKinney+%3Cjames%40opennorth.ca%3E&Received=by+luna.mailgun.net+with+SMTP+mgrt+8736253172409%3B+Thu%2C+16+May+2013+18%3A24%3A56+%2B0000&X-Envelope-From=%3Cjames%40opennorth.ca%3E&Received=from+mail-ia0-f181.google.com+%28mail-ia0-f181.google.com+%5B209.85.210.181%5D%29+by+mxa.mailgun.org+with+ESMTP+id+51952470.5508670-in1%3B+Thu%2C+16+May+2013+18%3A24%3A48+-0000+%28UTC%29&Received=by+mail-ia0-f181.google.com+with+SMTP+id+y25so3791913iay.40+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E%3B+Thu%2C+16+May+2013+11%3A24%3A48+-0700+%28PDT%29&X-Google-Dkim-Signature=v%3D1%3B+a%3Drsa-sha256%3B+c%3Drelaxed%2Frelaxed%3B+d%3Dgoogle.com%3B+s%3D20120113%3B+h%3Dx-received%3Afrom%3Acontent-type%3Asubject%3Adate%3Amessage-id%3Ato+%3Amime-version%3Ax-mailer%3Ax-gm-message-state%3B+bh%3DnHFddTyry8jWu92HPsWcxea8gMgaxJXAbq%2BmcjOcjM0%3D%3B+b%3Do2rCiZFjV6gjurnIHGtUiavMLKk7AcyjPR0Ysa2DUZrkfErwzAzQCJVI1330GkxoiG+6pj3vrAI80wyk8PwQy5Lp0K3Jy%2BY0%2FiZxDav4hZIRWjmbuIeDfuAv9FcxWEfWMutD6af+GKMjc3DwgRsLkDx0u%2BWMgaH6FQ%2B%2FkU84YlYB%2B%2BN5PnAtv8f40PjicGVc0BPEbRAi64sW+e62zpoeMSHwF4oFX5WLn%2B5fKghT3IzOyoSACGhMa8AI3dFRxIfBL1NdTDqTIj%2Fkv%2BmWO+FseRRSKUck5BOGlmXNIyEGTN1xv%2Bt78lAcVuGTmf2Ky3gZsyMjn3y1U6Yer6ofitLOdb+%2Bamw%3D%3D&X-Received=by+10.42.30.8+with+SMTP+id+t8mr23963282icc.43.1368728688269%3B+Thu%2C+16+May+2013+11%3A24%3A48+-0700+%28PDT%29&Return-Path=%3Cjames%40opennorth.ca%3E&Received=from+%5B192.168.0.105%5D+%28%5B69.165.208.137%5D%29+by+mx.google.com+with+ESMTPSA+id+o10sm5288167igh.2.2013.05.16.11.24.46+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E+%28version%3DTLSv1+cipher%3DRC4-SHA+bits%3D128%2F128%29%3B+Thu%2C+16+May+2013+11%3A24%3A46+-0700+%28PDT%29&From=James+McKinney+%3Cjames%40opennorth.ca%3E&Content-Type=multipart%2Falternative%3B+boundary%3D%22Apple-Mail%3D_38D81264-10EE-42AE-A4F5-12897E2F7C54%22&Subject=Test&Date=Mon%2C+15+Apr+2013+20%3A20%3A12+-0400&Message-Id=%3C99CF7D8C-FCD4-443F-8E04-69C4E470D18F%40opennorth.ca%3E&To=foo%2Bbar%40multimail.mailgun.org&Mime-Version=1.0+%28Apple+Message+framework+v1283%29&X-Mailer=Apple+Mail+%282.1283%29&X-Gm-Message-State=ALoCoQm%2FbhpTykjTryk%2ByHHQD2%2F%2ByEZqxOzTReRuZT8pwCujwlA21ICpGD8h3oL8BMMWyRVAjku4&X-Mailgun-Sflag=No&X-Mailgun-Sscore=0.0&X-Mailgun-Spf=Neutral&X-Mailgun-Incoming=Yes&message-headers=%5B%5B%22Received%22%2C+%22by+luna.mailgun.net+with+SMTP+mgrt+8736253172409%3B+Thu%2C+16+May+2013+18%3A24%3A56+%2B0000%22%5D%2C+%5B%22X-Envelope-From%22%2C+%22%3Cjames%40opennorth.ca%3E%22%5D%2C+%5B%22Received%22%2C+%22from+mail-ia0-f181.google.com+%28mail-ia0-f181.google.com+%5B209.85.210.181%5D%29+by+mxa.mailgun.org+with+ESMTP+id+51952470.5508670-in1%3B+Thu%2C+16+May+2013+18%3A24%3A48+-0000+%28UTC%29%22%5D%2C+%5B%22Received%22%2C+%22by+mail-ia0-f181.google.com+with+SMTP+id+y25so3791913iay.40+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E%3B+Thu%2C+16+May+2013+11%3A24%3A48+-0700+%28PDT%29%22%5D%2C+%5B%22X-Google-Dkim-Signature%22%2C+%22v%3D1%3B+a%3Drsa-sha256%3B+c%3Drelaxed%2Frelaxed%3B+d%3Dgoogle.com%3B+s%3D20120113%3B+h%3Dx-received%3Afrom%3Acontent-type%3Asubject%3Adate%3Amessage-id%3Ato+%3Amime-version%3Ax-mailer%3Ax-gm-message-state%3B+bh%3DnHFddTyry8jWu92HPsWcxea8gMgaxJXAbq%2BmcjOcjM0%3D%3B+b%3Do2rCiZFjV6gjurnIHGtUiavMLKk7AcyjPR0Ysa2DUZrkfErwzAzQCJVI1330GkxoiG+6pj3vrAI80wyk8PwQy5Lp0K3Jy%2BY0%2FiZxDav4hZIRWjmbuIeDfuAv9FcxWEfWMutD6af+GKMjc3DwgRsLkDx0u%2BWMgaH6FQ%2B%2FkU84YlYB%2B%2BN5PnAtv8f40PjicGVc0BPEbRAi64sW+e62zpoeMSHwF4oFX5WLn%2B5fKghT3IzOyoSACGhMa8AI3dFRxIfBL1NdTDqTIj%2Fkv%2BmWO+FseRRSKUck5BOGlmXNIyEGTN1xv%2Bt78lAcVuGTmf2Ky3gZsyMjn3y1U6Yer6ofitLOdb+%2Bamw%3D%3D%22%5D%2C+%5B%22X-Received%22%2C+%22by+10.42.30.8+with+SMTP+id+t8mr23963282icc.43.1368728688269%3B+Thu%2C+16+May+2013+11%3A24%3A48+-0700+%28PDT%29%22%5D%2C+%5B%22Return-Path%22%2C+%22%3Cjames%40opennorth.ca%3E%22%5D%2C+%5B%22Received%22%2C+%22from+%5B192.168.0.105%5D+%28%5B69.165.208.137%5D%29+by+mx.google.com+with+ESMTPSA+id+o10sm5288167igh.2.2013.05.16.11.24.46+for+%3Cfoo%2Bbar%40multimail.mailgun.org%3E+%28version%3DTLSv1+cipher%3DRC4-SHA+bits%3D128%2F128%29%3B+Thu%2C+16+May+2013+11%3A24%3A46+-0700+%28PDT%29%22%5D%2C+%5B%22From%22%2C+%22James+McKinney+%3Cjames%40opennorth.ca%3E%22%5D%2C+%5B%22Content-Type%22%2C+%22multipart%2Falternative%3B+boundary%3D%5C%22Apple-Mail%3D_38D81264-10EE-42AE-A4F5-12897E2F7C54%5C%22%22%5D%2C+%5B%22Subject%22%2C+%22Test%22%5D%2C+%5B%22Date%22%2C+%22Mon%2C+15+Apr+2013+20%3A20%3A12+-0400%22%5D%2C+%5B%22Message-Id%22%2C+%22%3C99CF7D8C-FCD4-443F-8E04-69C4E470D18F%40opennorth.ca%3E%22%5D%2C+%5B%22To%22%2C+%22foo%2Bbar%40multimail.mailgun.org%22%5D%2C+%5B%22Mime-Version%22%2C+%221.0+%28Apple+Message+framework+v1283%29%22%5D%2C+%5B%22X-Mailer%22%2C+%22Apple+Mail+%282.1283%29%22%5D%2C+%5B%22X-Gm-Message-State%22%2C+%22ALoCoQm%2FbhpTykjTryk%2ByHHQD2%2F%2ByEZqxOzTReRuZT8pwCujwlA21ICpGD8h3oL8BMMWyRVAjku4%22%5D%2C+%5B%22X-Mailgun-Sflag%22%2C+%22No%22%5D%2C+%5B%22X-Mailgun-Sscore%22%2C+%220.0%22%5D%2C+%5B%22X-Mailgun-Spf%22%2C+%22Neutral%22%5D%2C+%5B%22X-Mailgun-Incoming%22%2C+%22Yes%22%5D%5D×tamp=1366071615&token=5o56tmpwd3dnwthehwclemd-i-7u2gv9vb3u745ywj67d0mc87&signature=bc2ab6c1080d52f2a06928b93f21e86c2d28c548e2ef64354f8ba1a95bb53cd6&body-mime=Received%3A+by+luna.mailgun.net+with+SMTP+mgrt+8736253172409%3B+Thu%2C+16+May+2013%0A+18%3A24%3A56+%2B0000%0D%0AX-Envelope-From%3A+%3Cjames%40opennorth.ca%3E%0D%0AReceived%3A+from+mail-ia0-f181.google.com+%28mail-ia0-f181.google.com%0A+%5B209.85.210.181%5D%29+by+mxa.mailgun.org+with+ESMTP+id+51952470.5508670-in1%3B%0A+Thu%2C+16+May+2013+18%3A24%3A48+-0000+%28UTC%29%0D%0AReceived%3A+by+mail-ia0-f181.google.com+with+SMTP+id+y25so3791913iay.40+for%0A+%3Cfoo%2Bbar%40multimail.mailgun.org%3E%3B+Thu%2C+16+May+2013+11%3A24%3A48+-0700+%28PDT%29%0D%0AX-Google-Dkim-Signature%3A+v%3D1%3B+a%3Drsa-sha256%3B+c%3Drelaxed%2Frelaxed%3B+d%3Dgoogle.com%3B%0A+s%3D20120113%3B+h%3Dx-received%3Afrom%3Acontent-type%3Asubject%3Adate%3Amessage-id%3Ato%0A+%3Amime-version%3Ax-mailer%3Ax-gm-message-state%3B%0A+bh%3DnHFddTyry8jWu92HPsWcxea8gMgaxJXAbq%2BmcjOcjM0%3D%3B%0A+b%3Do2rCiZFjV6gjurnIHGtUiavMLKk7AcyjPR0Ysa2DUZrkfErwzAzQCJVI1330GkxoiG%0A+6pj3vrAI80wyk8PwQy5Lp0K3Jy%2BY0%2FiZxDav4hZIRWjmbuIeDfuAv9FcxWEfWMutD6af%0A+GKMjc3DwgRsLkDx0u%2BWMgaH6FQ%2B%2FkU84YlYB%2B%2BN5PnAtv8f40PjicGVc0BPEbRAi64sW%0A+e62zpoeMSHwF4oFX5WLn%2B5fKghT3IzOyoSACGhMa8AI3dFRxIfBL1NdTDqTIj%2Fkv%2BmWO%0A+FseRRSKUck5BOGlmXNIyEGTN1xv%2Bt78lAcVuGTmf2Ky3gZsyMjn3y1U6Yer6ofitLOdb+%2Bamw%3D%3D%0D%0AX-Received%3A+by+10.42.30.8+with+SMTP+id+t8mr23963282icc.43.1368728688269%3B%0A+Thu%2C+16+May+2013+11%3A24%3A48+-0700+%28PDT%29%0D%0AReturn-Path%3A+%3Cjames%40opennorth.ca%3E%0D%0AReceived%3A+from+%5B192.168.0.105%5D+%28%5B69.165.208.137%5D%29+by+mx.google.com+with%0A+ESMTPSA+id+o10sm5288167igh.2.2013.05.16.11.24.46+for%0A+%3Cfoo%2Bbar%40multimail.mailgun.org%3E+%28version%3DTLSv1+cipher%3DRC4-SHA%0A+bits%3D128%2F128%29%3B+Thu%2C+16+May+2013+11%3A24%3A46+-0700+%28PDT%29%0D%0AFrom%3A+James+McKinney+%3Cjames%40opennorth.ca%3E%0D%0AContent-Type%3A+multipart%2Falternative%3B+boundary%3D%22Apple-Mail%3D_38D81264-10EE-42AE-A4F5-12897E2F7C54%22%0D%0ASubject%3A+Test%0D%0ADate%3A+Mon%2C+15+Apr+2013+20%3A20%3A12+-0400%0D%0AMessage-Id%3A+%3C99CF7D8C-FCD4-443F-8E04-69C4E470D18F%40opennorth.ca%3E%0D%0ATo%3A+foo%2Bbar%40multimail.mailgun.org%0D%0AMime-Version%3A+1.0+%28Apple+Message+framework+v1283%29%0D%0AX-Mailer%3A+Apple+Mail+%282.1283%29%0D%0AX-Gm-Message-State%3A+ALoCoQm%2FbhpTykjTryk%2ByHHQD2%2F%2ByEZqxOzTReRuZT8pwCujwlA21ICpGD8h3oL8BMMWyRVAjku4%0D%0AX-Mailgun-Sflag%3A+No%0D%0AX-Mailgun-Sscore%3A+0.0%0D%0AX-Mailgun-Spf%3A+Neutral%0D%0AX-Mailgun-Incoming%3A+Yes%0D%0A%0D%0A--Apple-Mail%3D_38D81264-10EE-42AE-A4F5-12897E2F7C54%0D%0AContent-Transfer-Encoding%3A+7bit%0D%0AContent-Type%3A+text%2Fplain%3B%0D%0A%09charset%3Dus-ascii%0D%0A%0D%0Abold+text%0D%0A%0D%0A%0D%0A%0D%0Asome+more+bold+text%0D%0A%0D%0A%0D%0A%0D%0Asome+italic+text%0D%0A%0D%0A%3E+multiline%0D%0A%3E+quoted%0D%0A%3E+text%0D%0A%0D%0A%0D%0A--%0D%0ASignature+block%0D%0A--Apple-Mail%3D_38D81264-10EE-42AE-A4F5-12897E2F7C54%0D%0AContent-Type%3A+multipart%2Fmixed%3B%0D%0A%09boundary%3D%22Apple-Mail%3D_7A3447DB-E6A4-47CF-B623-0F2038F9E60B%22%0D%0A%0D%0A%0D%0A--Apple-Mail%3D_7A3447DB-E6A4-47CF-B623-0F2038F9E60B%0D%0AContent-Transfer-Encoding%3A+7bit%0D%0AContent-Type%3A+text%2Fhtml%3B%0D%0A%09charset%3Dus-ascii%0D%0A%0D%0A%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody+style%3D%22word-wrap%3A+break-word%3B+-webkit-nbsp-mode%3A+space%3B+-webkit-line-break%3A+after-white-space%3B+%22%3E%3Cb%3Ebold+text%3C%2Fb%3E%3Cdiv%3E%3Cbr%3E%3C%2Fdiv%3E%3Cdiv%3E%3C%2Fdiv%3E%3C%2Fbody%3E%3C%2Fhtml%3E%0D%0A--Apple-Mail%3D_7A3447DB-E6A4-47CF-B623-0F2038F9E60B%0D%0AContent-Disposition%3A+attachment%3B%0D%0A%09filename%3Dfoo.txt%0D%0AContent-Type%3A+text%2Fplain%3B%0D%0A%09x-unix-mode%3D0644%3B%0D%0A%09name%3D%22foo.txt%22%0D%0AContent-Transfer-Encoding%3A+7bit%0D%0A%0D%0ALorem+ipsum+dolor+sit+amet%2C+consectetur+adipiscing+elit.%0D%0A%0D%0A--Apple-Mail%3D_7A3447DB-E6A4-47CF-B623-0F2038F9E60B%0D%0AContent-Transfer-Encoding%3A+7bit%0D%0AContent-Type%3A+text%2Fhtml%3B%0D%0A%09charset%3Dus-ascii%0D%0A%0D%0A%3Chtml%3E%3Cbody+style%3D%22word-wrap%3A+break-word%3B+-webkit-nbsp-mode%3A+space%3B+-webkit-line-break%3A+after-white-space%3B+%22%3E%3Chead%3E%3C%2Fhead%3E%3Cbr%3E%3Cdiv%3E%3C%2Fdiv%3E%3Cdiv%3E%3Cbr%3E%3C%2Fdiv%3E%3Cdiv%3E%3Cb%3Esome+more+bold+text%3C%2Fb%3E%3C%2Fdiv%3E%3Cdiv%3E%3Cb%3E%3Cbr%3E%3C%2Fb%3E%3C%2Fdiv%3E%3Cdiv%3E%3Cb%3E%3C%2Fb%3E%3C%2Fdiv%3E%3C%2Fbody%3E%3C%2Fhtml%3E%0D%0A--Apple-Mail%3D_7A3447DB-E6A4-47CF-B623-0F2038F9E60B%0D%0AContent-Disposition%3A+attachment%3B%0D%0A%09filename%3Dbar.txt%0D%0AContent-Type%3A+text%2Fplain%3B%0D%0A%09x-unix-mode%3D0644%3B%0D%0A%09name%3D%22bar.txt%22%0D%0AContent-Transfer-Encoding%3A+7bit%0D%0A%0D%0ANam+accumsan+euismod+eros+et+rhoncus.%0D%0A%0D%0A--Apple-Mail%3D_7A3447DB-E6A4-47CF-B623-0F2038F9E60B%0D%0AContent-Transfer-Encoding%3A+7bit%0D%0AContent-Type%3A+text%2Fhtml%3B%0D%0A%09charset%3Dus-ascii%0D%0A%0D%0A%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody+style%3D%22word-wrap%3A+break-word%3B+-webkit-nbsp-mode%3A+space%3B+-webkit-line-break%3A+after-white-space%3B+%22%3E%3Cbr%3E%3Cdiv%3E%3Cb%3E%3C%2Fb%3E%3C%2Fdiv%3E%3Cdiv%3E%3Cb%3E%3Cspan+class%3D%22Apple-style-span%22+style%3D%22font-weight%3A+normal%3B+%22%3E%3Cbr%3E%3C%2Fspan%3E%3C%2Fb%3E%3C%2Fdiv%3E%3Cdiv%3E%3Cb%3E%3Cspan+class%3D%22Apple-style-span%22+style%3D%22font-weight%3A+normal%3B+%22%3E%3Ci%3Esome+italic+text%3C%2Fi%3E%3C%2Fspan%3E%3C%2Fb%3E%3C%2Fdiv%3E%3Cdiv%3E%3Cb%3E%3Cspan+class%3D%22Apple-style-span%22+style%3D%22font-weight%3A+normal%3B+%22%3E%3Cbr%3E%3C%2Fspan%3E%3C%2Fb%3E%3C%2Fdiv%3E%3Cdiv%3E%3Cblockquote+type%3D%22cite%22%3Emultiline%3C%2Fblockquote%3E%3Cblockquote+type%3D%22cite%22%3Equoted%3C%2Fblockquote%3E%3Cblockquote+type%3D%22cite%22%3Etext%3C%2Fblockquote%3E%3C%2Fdiv%3E%3Cdiv%3E%3Cbr%3E%3C%2Fdiv%3E%3Cdiv%3E--%3C%2Fdiv%3E%3Cdiv%3ESignature+block%3C%2Fdiv%3E%3C%2Fbody%3E%3C%2Fhtml%3E%0D%0A--Apple-Mail%3D_7A3447DB-E6A4-47CF-B623-0F2038F9E60B--%0D%0A%0D%0A--Apple-Mail%3D_38D81264-10EE-42AE-A4F5-12897E2F7C54--%0D%0A
|
@@ -0,0 +1,15 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Content-Length: 5617
|
3
|
+
Content-Type: application/x-www-form-urlencoded
|
4
|
+
X-Request-Start: 1369936696755
|
5
|
+
X-Mandrill-Signature: xxx
|
6
|
+
X-Forwarded-Proto: http
|
7
|
+
X-Forwarded-Port: 80
|
8
|
+
X-Forwarded-For: 54.214.68.124
|
9
|
+
User-Agent: Mandrill-Webhook/1.0
|
10
|
+
Host: rackbin.herokuapp.com
|
11
|
+
Connection: close
|
12
|
+
Accept: */*
|
13
|
+
Version: HTTP/1.1
|
14
|
+
|
15
|
+
mandrill_events=%5B%7B%22event%22%3A%22inbound%22%2C%22ts%22%3A1369936696%2C%22msg%22%3A%7B%22raw_msg%22%3A%22Received%3A+from+mail-ob0-f171.google.com+%28mail-ob0-f171.google.com+%5B209.85.214.171%5D%29%5Cn%5Ctby+ip-10-249-27-209+%28Postfix%29+with+ESMTPS+id+66C5FE1C0A4%5Cn%5Ctfor+%3Cfoo%2Bbar%40govkit.org%3E%3B+Thu%2C+30+May+2013+17%3A58%3A10+%2B0000+%28UTC%29%5CnReceived%3A+by+mail-ob0-f171.google.com+with+SMTP+id+dn14so1210143obc.30%5Cn++++++++for+%3Cfoo%2Bbar%40govkit.org%3E%3B+Thu%2C+30+May+2013+10%3A58%3A09+-0700+%28PDT%29%5CnX-Google-DKIM-Signature%3A+v%3D1%3B+a%3Drsa-sha256%3B+c%3Drelaxed%5C%2Frelaxed%3B%5Cn++++++++d%3Dgoogle.com%3B+s%3D20120113%3B%5Cn++++++++h%3Dfrom%3Acontent-type%3Acontent-transfer-encoding%3Asubject%3Adate%3Amessage-id%5Cn+++++++++%3Ato%3Amime-version%3Ax-mailer%3Ax-gm-message-state%3B%5Cn++++++++bh%3D47DEQpj8HBSa%2B%5C%2FTImW%2B5JCeuQeRkm5NMpJWZG3hSuFU%3D%3B%5Cn++++++++b%3DSI%5C%2FNChu8mdE7mo4NG4gR74brC4En4M26tu7iKicblvmWWfdqFxRskFnIy1UmifC4lj%5Cn+++++++++atcYSI8WYN4LkckUwNf1maqQqBx%2B2M%5C%2FCkSHpMtpqV2uhfd0bsP6Xr2U27Lq0Qc9UxhL1%5Cn+++++++++7gSdYaVUm53VN5cBUngV2zm%2BF5QIq4uIUFxWjmL%2B3CZKvo6CtIoZS0zMihEIfbB87tTw%5Cn+++++++++erhxwulc%5C%2FiA%5C%2FDlYhbftvmtMCPkAuJafUhabdg7vSHWw0l3R7CN1zcUpnNUdEZzwK9GsN%5Cn+++++++++B0WL3gbjWzk727mlk9k6ejKt5Z9whBeaJ8OVKMIZOn7nhdbiplOzXarSEwmhll7eDXUg%5Cn+++++++++fyQg%3D%3D%5CnX-Received%3A+by+10.60.37.133+with+SMTP+id+y5mr4562147oej.123.1369936689131%3B%5Cn++++++++Thu%2C+30+May+2013+10%3A58%3A09+-0700+%28PDT%29%5CnReceived%3A+from+%5B192.168.0.102%5D+%28%5B69.165.208.137%5D%29%5Cn++++++++by+mx.google.com+with+ESMTPSA+id+hv3sm43172948obb.7.2013.05.30.10.58.06%5Cn++++++++for+%3Cfoo%2Bbar%40govkit.org%3E%5Cn++++++++%28version%3DTLSv1+cipher%3DRC4-SHA+bits%3D128%5C%2F128%29%3B%5Cn++++++++Thu%2C+30+May+2013+10%3A58%3A07+-0700+%28PDT%29%5CnFrom%3A+James+McKinney+%3Cjames%40opennorth.ca%3E%5CnContent-Type%3A+text%5C%2Fplain%5CnContent-Transfer-Encoding%3A+7bit%5CnSubject%3A+%5CnDate%3A+Thu%2C+30+May+2013+13%3A58%3A05+-0400%5CnMessage-Id%3A+%3C5B2DAE74-CE00-4A73-B7C6-5AE4C2EAD5FE%40opennorth.ca%3E%5CnTo%3A+foo%2Bbar%40govkit.org%5CnMime-Version%3A+1.0+%28Apple+Message+framework+v1283%29%5CnX-Mailer%3A+Apple+Mail+%282.1283%29%5CnX-Gm-Message-State%3A+ALoCoQn70NOfOklBLwZZN9Xsgep5nMg6jpgOCNHvteto9%5C%2FjHIOYSq71BfRxC3H7CsevGw6ZhSS9h%22%2C%22headers%22%3A%7B%22Received%22%3A%5B%22from+mail-ob0-f171.google.com+%28mail-ob0-f171.google.com+%5B209.85.214.171%5D%29+by+ip-10-249-27-209+%28Postfix%29+with+ESMTPS+id+66C5FE1C0A4+for+%3Cfoo%2Bbar%40govkit.org%3E%3B+Thu%2C+30+May+2013+17%3A58%3A10+%2B0000+%28UTC%29%22%2C%22by+mail-ob0-f171.google.com+with+SMTP+id+dn14so1210143obc.30+for+%3Cfoo%2Bbar%40govkit.org%3E%3B+Thu%2C+30+May+2013+10%3A58%3A09+-0700+%28PDT%29%22%2C%22from+%5B192.168.0.102%5D+%28%5B69.165.208.137%5D%29+by+mx.google.com+with+ESMTPSA+id+hv3sm43172948obb.7.2013.05.30.10.58.06+for+%3Cfoo%2Bbar%40govkit.org%3E+%28version%3DTLSv1+cipher%3DRC4-SHA+bits%3D128%5C%2F128%29%3B+Thu%2C+30+May+2013+10%3A58%3A07+-0700+%28PDT%29%22%5D%2C%22X-Google-Dkim-Signature%22%3A%22v%3D1%3B+a%3Drsa-sha256%3B+c%3Drelaxed%5C%2Frelaxed%3B+d%3Dgoogle.com%3B+s%3D20120113%3B+h%3Dfrom%3Acontent-type%3Acontent-transfer-encoding%3Asubject%3Adate%3Amessage-id+%3Ato%3Amime-version%3Ax-mailer%3Ax-gm-message-state%3B+bh%3D47DEQpj8HBSa%2B%5C%2FTImW%2B5JCeuQeRkm5NMpJWZG3hSuFU%3D%3B+b%3DSI%5C%2FNChu8mdE7mo4NG4gR74brC4En4M26tu7iKicblvmWWfdqFxRskFnIy1UmifC4lj+atcYSI8WYN4LkckUwNf1maqQqBx%2B2M%5C%2FCkSHpMtpqV2uhfd0bsP6Xr2U27Lq0Qc9UxhL1+7gSdYaVUm53VN5cBUngV2zm%2BF5QIq4uIUFxWjmL%2B3CZKvo6CtIoZS0zMihEIfbB87tTw+erhxwulc%5C%2FiA%5C%2FDlYhbftvmtMCPkAuJafUhabdg7vSHWw0l3R7CN1zcUpnNUdEZzwK9GsN+B0WL3gbjWzk727mlk9k6ejKt5Z9whBeaJ8OVKMIZOn7nhdbiplOzXarSEwmhll7eDXUg+fyQg%3D%3D%22%2C%22X-Received%22%3A%22by+10.60.37.133+with+SMTP+id+y5mr4562147oej.123.1369936689131%3B+Thu%2C+30+May+2013+10%3A58%3A09+-0700+%28PDT%29%22%2C%22From%22%3A%22James+McKinney+%3Cjames%40opennorth.ca%3E%22%2C%22Content-Type%22%3A%22text%5C%2Fplain%22%2C%22Content-Transfer-Encoding%22%3A%227bit%22%2C%22Subject%22%3A%22%22%2C%22Date%22%3A%22Thu%2C+30+May+2013+13%3A58%3A05+-0400%22%2C%22Message-Id%22%3A%22%3C5B2DAE74-CE00-4A73-B7C6-5AE4C2EAD5FE%40opennorth.ca%3E%22%2C%22To%22%3A%22foo%2Bbar%40govkit.org%22%2C%22Mime-Version%22%3A%221.0+%28Apple+Message+framework+v1283%29%22%2C%22X-Mailer%22%3A%22Apple+Mail+%282.1283%29%22%2C%22X-Gm-Message-State%22%3A%22ALoCoQn70NOfOklBLwZZN9Xsgep5nMg6jpgOCNHvteto9%5C%2FjHIOYSq71BfRxC3H7CsevGw6ZhSS9h%22%7D%2C%22text%22%3Anull%2C%22text_flowed%22%3Afalse%2C%22from_email%22%3A%22james%40opennorth.ca%22%2C%22from_name%22%3A%22James+McKinney%22%2C%22to%22%3A%5B%5B%22foo%2Bbar%40govkit.org%22%2Cnull%5D%5D%2C%22subject%22%3A%22%22%2C%22spam_report%22%3A%7B%22score%22%3A1.6%2C%22matched_rules%22%3A%5B%7B%22name%22%3A%22RCVD_IN_DNSWL_LOW%22%2C%22score%22%3A-0.7%2C%22description%22%3A%22RBL%3A+Sender+listed+at+http%3A%5C%2F%5C%2Fwww.dnswl.org%5C%2F%2C+low%22%7D%2C%7B%22name%22%3Anull%2C%22score%22%3A0%2C%22description%22%3Anull%7D%2C%7B%22name%22%3A%22listed%22%2C%22score%22%3A0%2C%22description%22%3A%22in+list.dnswl.org%5D%22%7D%2C%7B%22name%22%3A%22EMPTY_MESSAGE%22%2C%22score%22%3A2.3%2C%22description%22%3A%22Message+appears+to+have+no+textual+parts+and+no%22%7D%2C%7B%22name%22%3A%22text%22%2C%22score%22%3A0%2C%22description%22%3Anull%7D%5D%7D%2C%22dkim%22%3A%7B%22signed%22%3Afalse%2C%22valid%22%3Afalse%7D%2C%22spf%22%3A%7B%22result%22%3A%22pass%22%2C%22detail%22%3A%22sender+SPF+authorized%22%7D%2C%22email%22%3A%22foo%2Bbar%40govkit.org%22%2C%22tags%22%3A%5B%5D%2C%22sender%22%3Anull%2C%22template%22%3Anull%7D%7D%5D
|