ses_api-rails 0.1.1 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4de9daf34f95efa8b7df130f3aa60a03a4ff19a8
4
- data.tar.gz: 55dc920bb50c3a435040e9556d3c66a08bd92b23
3
+ metadata.gz: fbc9437dc0c338b9dbd896f49e490c91434146c9
4
+ data.tar.gz: c1794cfaf066969298a913830928adf5513abddd
5
5
  SHA512:
6
- metadata.gz: 1dc9fc30d9186dc9eaea6293447522ef1bd2ffeb7cca7114dbabdce90d4271dc4e20ee39d3d7f36fb78a77c6b0eb82e9443667a1441e092e7e958138e343a14e
7
- data.tar.gz: ece94310d777f0ae08604db59014caa008be02fdf4989387c208e3322327a51d7c995b6dd9a35071293c32c84d30a07a927e7aa5a2e24ba79cc0824b9294bb31
6
+ metadata.gz: 92eb2f7e7708052aa272a85de157892be39d8e519442454fb5af2b209ed48d085fbdccdf8079493f006800f84fa9329e79f9febab6a436d34a6c1847a94a876a
7
+ data.tar.gz: bb5380c00ec717c258892c31dc0bdcdeb0c926e3b3bc57da8333f833a536964b96edfa5a6ddaf94b3ba8388150b75e1639884159c15b58942803d57c6220cf22
@@ -54,10 +54,9 @@ module SesApi
54
54
  end
55
55
 
56
56
  def create_payload
57
- to = mail.to.each_with_index.map { |email, i| "&Destination.ToAddresses.member.#{i+1}=#{CGI::escape(email)}"}.join
58
- cc = mail.cc.each_with_index.map { |email, i| "&Destination.CcAddresses.member.#{i+1}=#{CGI::escape(email)}"}.join if mail.cc.present?
59
- bcc = mail.bcc.each_with_index.map { |email, i| "&Destination.BccAddresses.member.#{i+1}=#{CGI::escape(email)}"}.join if mail.bcc.present?
60
- from = "&Source=#{CGI::escape(mail.from[0])}"
57
+ display_names = create_display_names
58
+ destinations = build_destination_addresses(display_names)
59
+ from = "&Source=#{format_email(mail.from[0], display_names)}"
61
60
  subject = "&Message.Subject.Data=#{CGI::escape(mail.subject)}"
62
61
 
63
62
  if mail.body.raw_source.present?
@@ -68,7 +67,31 @@ module SesApi
68
67
  body << "&Message.Body.Text.Data=#{CGI::escape(mail.text_part.body.raw_source)}&Message.Body.Text.Charset=UTF-8"
69
68
  end
70
69
 
71
- payload = "AWSAccessKeyId=#{SesApi::Rails.configuration.access_key_id}&Action=SendEmail#{to}#{cc}#{bcc}#{body}#{subject}#{from}"
70
+ payload = "AWSAccessKeyId=#{SesApi::Rails.configuration.access_key_id}&Action=SendEmail#{destinations}#{body}#{subject}#{from}"
71
+ end
72
+
73
+ def create_display_names
74
+ display_names = {}
75
+ mail.header.fields.each do |f|
76
+ if %w[To From Cc Bcc].include? f.name
77
+ f.address_list.addresses.each do |a|
78
+ email = "#{a.local}@#{a.domain}"
79
+ display_names.[]=(email, a.display_name) ? a.display_name.present? : a.local
80
+ end
81
+ end
82
+ end
83
+ display_names
84
+ end
85
+
86
+ def build_destination_addresses(display_names)
87
+ to = mail.to.each_with_index.map { |email, i| "&Destination.ToAddresses.member.#{i+1}=#{format_email(email, display_names)}"}.join
88
+ cc = mail.cc.each_with_index.map { |email, i| "&Destination.CcAddresses.member.#{i+1}=#{format_email(email, display_names)}"}.join if mail.cc.present?
89
+ bcc = mail.bcc.each_with_index.map { |email, i| "&Destination.BccAddresses.member.#{i+1}=#{format_email(email, display_names)}"}.join if mail.bcc.present?
90
+ return "#{to}#{cc}#{bcc}"
91
+ end
92
+
93
+ def format_email(email, display_names)
94
+ CGI::escape("#{display_names[email]}<#{email}>")
72
95
  end
73
96
 
74
97
  def create_canonical_request(headers, hashed_payload, signed_headers)
@@ -1,5 +1,5 @@
1
1
  module SesApi
2
2
  module Rails
3
- VERSION = "0.1.1"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ses_api-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Ickes