sendcloud-mailer 0.1.2 → 0.2.0

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
- SHA1:
3
- metadata.gz: 014e4a0ba58b96091774e0ec629f6d4a372659ce
4
- data.tar.gz: 552cd74b98e3682dbe775b10e56504845bc86757
2
+ SHA256:
3
+ metadata.gz: 5cfff98f00dba6a12c6e3ac4bfd358f9faa8d295e83178dd1780ed01fc7d98e7
4
+ data.tar.gz: 6b38b89f1fdd0ee64010ecef52170b4532da1ccd6ff37576335153677736128b
5
5
  SHA512:
6
- metadata.gz: 2ac0610941d92a4f2b689fe4b9764b6def7afcb3ec42c2bbdc3bff470a66f0e6b6852661a513e7281abd59cbe13f9e995ff07b4af8a3eda31f01d7c1dc9f9045
7
- data.tar.gz: 38d30942f6ac169db04c439e8500c58e226ed361059f787af0afca2fcb70be7db69c37eaf5cdb28c349cbf097707b76a70769b5a8d478920a8d519e8ed2777f4
6
+ metadata.gz: 6ee3729b9b6488b8a356f1d6b192b63b13d64612ef2f55d2c09c095ed32fd4697dd9683d47588ddd439a011ec7b9963554336ce1048fbf12fcc422000bbb80ea
7
+ data.tar.gz: 937c7c44b445e0d9d2a5d3a7447d4364fa578931010127d157046d11386dfeece6cfe7d1673bdef7630f18bf4b4a12cc2527020f9a7dc666050c60865d9bf3ef
data/CHANGELOG.md CHANGED
@@ -1,7 +1,16 @@
1
- # v0.1.2 / 2016-08-06
1
+ # Change Log
2
+ ## v0.2.0 / 2023-03-14
2
3
 
3
- Added label id.
4
+ ### Added
5
+ - content_type (#2)
4
6
 
5
- # v0.1.1 / 2016-03-20
7
+ ### Fixed
8
+ - addresses to support new version mail
6
9
 
10
+ ## v0.1.2 / 2016-08-06
11
+
12
+ ### Added
13
+ - label id
14
+
15
+ ## v0.1.1 / 2016-03-20
7
16
  Release project
data/README.md CHANGED
@@ -27,8 +27,8 @@ Set up delivery method and SendCloud settings in you rails config, eg. `config/e
27
27
  ```Ruby
28
28
  config.action_mailer.delivery_method = :sendcloud
29
29
  config.action_mailer.sendcloud_settings = {
30
- :api_user => 'USER',
31
- :api_key => 'KEY'
30
+ api_user: 'USER',
31
+ api_key: 'KEY'
32
32
  }
33
33
  ```
34
34
  If you use SMTP, you can add this interecptor to fix the problem that SendCloud does not accept <HTML> tag.
@@ -12,25 +12,29 @@ module SendcloudMailer
12
12
  @mail = mail
13
13
 
14
14
  params = {
15
- :apiUser => settings[:api_user],
16
- :apiKey => settings[:api_key],
17
- :from => from,
18
- :to => to,
19
- :cc => cc,
20
- :bcc => bcc,
21
- :subject => mail.subject,
22
- :html => html,
23
- :plain => plain,
24
- :attachments => attachments,
25
- :labelId => label_id
15
+ apiUser: settings[:api_user],
16
+ apiKey: settings[:api_key],
17
+ from: from,
18
+ to: to,
19
+ cc: cc,
20
+ bcc: bcc,
21
+ subject: mail.subject,
22
+ html: html,
23
+ plain: plain,
24
+ attachments: attachments,
25
+ labelId: label_id
26
26
  }
27
- params.delete_if { |k, v| v.nil? }
27
+ params.delete_if { |_k, v| v.nil? }
28
28
 
29
- result = RestClient.post( 'http://api.sendcloud.net/apiv2/mail/send', params )
29
+ result = RestClient.post('http://api.sendcloud.net/apiv2/mail/send', params)
30
30
  json = JSON.parse(result.force_encoding('UTF-8'))
31
- error(json) unless json["result"]
31
+ error(json) unless json['result']
32
32
  unless @file.nil?
33
- File.unlink(@file.path) rescue nil
33
+ begin
34
+ File.unlink(@file.path)
35
+ rescue StandardError
36
+ nil
37
+ end
34
38
  end
35
39
  end
36
40
 
@@ -41,7 +45,7 @@ module SendcloudMailer
41
45
  end
42
46
 
43
47
  def from
44
- @mail.header.fields.find{|f| f.name == "From"}.value
48
+ @mail.header.fields.find { |f| f.name == 'From' }.value
45
49
  end
46
50
 
47
51
  def to
@@ -59,23 +63,31 @@ module SendcloudMailer
59
63
  def addresses(name)
60
64
  result = @mail.header.fields.find { |f| f.name == name }
61
65
  unless result.nil?
62
- addresses = result.address_list.addresses
66
+ addresses = result.addresses
63
67
  addresses.join(';')
64
68
  end
65
69
  end
66
70
 
67
71
  def html
68
- @mail.html_part ? @mail.html_part.body.decoded : nil
72
+ if @mail.html_part
73
+ @mail.html_part.body.decoded
74
+ else
75
+ @mail.content_type =~ %r{text/html} ? @mail.body.decoded : nil
76
+ end
69
77
  end
70
78
 
71
79
  def plain
72
- @mail.multipart? ? (@mail.text_part ? @mail.text_part.body.decoded : nil) : @mail.body.decoded
80
+ if @mail.multipart?
81
+ @mail.text_part ? @mail.text_part.body.decoded : nil
82
+ else
83
+ @mail.content_type =~ %r{text/plain} ? @mail.body.decoded : nil
84
+ end
73
85
  end
74
86
 
75
87
  def attachments
76
88
  return nil if @mail.attachments.length == 0
77
89
 
78
- @mail.attachments.each do | attachment |
90
+ @mail.attachments.each do |attachment|
79
91
  filename = attachment.filename
80
92
  # sendcloud api can only single file
81
93
  @file = File.new(File.join(Dir.tmpdir, filename), 'w+b')
@@ -3,6 +3,7 @@ module SendcloudMailer
3
3
  def self.delivering_email(mail)
4
4
  html = mail.html_part ? mail.html_part.body.decoded : nil
5
5
  return if html.nil?
6
+
6
7
  html = Nokogiri::HTML(html)
7
8
  body = html.xpath('//body')[0]
8
9
  body.name = 'div'
@@ -1,3 +1,3 @@
1
1
  module SendcloudMailer
2
- VERSION = "0.1.2"
2
+ VERSION = '0.2.0'
3
3
  end
@@ -1,8 +1,8 @@
1
1
  require 'active_support/rescuable'
2
- require "action_mailer"
3
- require "sendcloud-mailer/version"
4
- require "sendcloud-mailer/base"
5
- require "sendcloud-mailer/interceptor"
2
+ require 'action_mailer'
3
+ require 'sendcloud-mailer/version'
4
+ require 'sendcloud-mailer/base'
5
+ require 'sendcloud-mailer/interceptor'
6
6
 
7
7
  module SendcloudMailer
8
8
  ActionMailer::Base.add_delivery_method :sendcloud, Base
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
18
18
  spec.require_paths = ["lib"]
19
19
 
20
20
  spec.add_dependency "actionmailer"
21
- spec.add_dependency "rest-client"
21
+ spec.add_dependency "rest-client", ">= 1.7.0"
22
22
 
23
- spec.add_development_dependency "bundler", "~> 1.10"
24
- spec.add_development_dependency "rake", "~> 10.0"
23
+ spec.add_development_dependency "bundler", ">= 1.10"
24
+ spec.add_development_dependency "rake", ">= 10.0"
25
25
  spec.add_development_dependency "rspec"
26
26
  spec.add_development_dependency "webmock"
27
27
  spec.add_development_dependency "simplecov"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sendcloud-mailer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chen, Yi-Cyuan
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-06 00:00:00.000000000 Z
11
+ date: 2023-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionmailer
@@ -30,40 +30,40 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 1.7.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 1.7.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.10'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.10'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '10.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '10.0'
69
69
  - !ruby/object:Gem::Dependency
@@ -148,7 +148,7 @@ homepage: https://github.com/emn178/sendcloud-mailer
148
148
  licenses:
149
149
  - MIT
150
150
  metadata: {}
151
- post_install_message:
151
+ post_install_message:
152
152
  rdoc_options: []
153
153
  require_paths:
154
154
  - lib
@@ -163,9 +163,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
163
  - !ruby/object:Gem::Version
164
164
  version: '0'
165
165
  requirements: []
166
- rubyforge_project:
167
- rubygems_version: 2.4.8
168
- signing_key:
166
+ rubygems_version: 3.1.6
167
+ signing_key:
169
168
  specification_version: 4
170
169
  summary: An Action Mailer delivery method for SendCloud email service.
171
170
  test_files: []