madmimi_for_rails_two 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/madmimi_for_rails_two.rb +77 -0
  2. metadata +5 -5
@@ -0,0 +1,77 @@
1
+ class MadMimi
2
+ BASE_URL = 'api.madmimi.com'
3
+ STATUS_PATH = '/mailers/status'
4
+ SEND_PATH = '/mailer'
5
+ cattr_accessor :api_settings
6
+
7
+ def self.is_transactional
8
+ api_settings[:transactional].nil? || api_settings[:transactional] == true
9
+ end
10
+
11
+ def self.username
12
+ api_settings[:username]
13
+ end
14
+
15
+ def self.api_key
16
+ api_settings[:api_key]
17
+ end
18
+
19
+ def self.check_status(transaction_id)
20
+ return if transaction_id.nil?
21
+ return unless is_transactional
22
+
23
+ connection.get("#{STATUS_PATH}/#{transaction_id}?username=#{username}&api_key=#{api_key}").body
24
+ end
25
+
26
+ def self.connection
27
+ http = Net::HTTP.new(BASE_URL, is_transactional ? 443 : 80)
28
+
29
+ if is_transactional
30
+ http.use_ssl = true
31
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
32
+ end
33
+
34
+ http
35
+ end
36
+ end
37
+
38
+ class TMail::Mail
39
+
40
+ attr_accessor :transaction_id
41
+
42
+ def check_madmimi_status
43
+ MadMimi.check_status(transaction_id)
44
+ end
45
+ end
46
+
47
+ class ActionMailer::Base
48
+
49
+ adv_attr_accessor :promotion_name
50
+
51
+ def perform_delivery_madmimi(mail)
52
+
53
+ form_data = {
54
+ 'username' => MadMimi.username,
55
+ 'api_key' => MadMimi.api_key,
56
+ 'promotion_name' => promotion_name,
57
+ 'recipients' => recipients,
58
+ 'from' => from,
59
+ 'subject' => subject,
60
+ 'reply_to' => reply_to,
61
+ 'raw_html' => body + ' [[tracking_beacon]]'
62
+ }
63
+
64
+ http = MadMimi.connection
65
+
66
+ begin
67
+ http.start do |http|
68
+ request = Net::HTTP::Post.new(MadMimi::SEND_PATH)
69
+ request.set_form_data(form_data)
70
+ response = http.request(request)
71
+ mail.transaction_id = response.body.strip
72
+ end
73
+ rescue SocketError
74
+ raise "Host unreachable."
75
+ end
76
+ end
77
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: madmimi_for_rails_two
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 9
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 0
10
- version: 0.5.0
9
+ - 1
10
+ version: 0.5.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Igor Soarez
@@ -27,8 +27,8 @@ extensions: []
27
27
 
28
28
  extra_rdoc_files: []
29
29
 
30
- files: []
31
-
30
+ files:
31
+ - lib/madmimi_for_rails_two.rb
32
32
  has_rdoc: true
33
33
  homepage: https://github.com/Soarez/madmimi_for_rails_two
34
34
  licenses: []