sendcloud-mailer 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 63d2c522c2d3c92ea6088c10e05900b256345434
4
- data.tar.gz: 610da6bd64f69c570f2ba3c6438ef036eb21428f
2
+ SHA256:
3
+ metadata.gz: 5cfff98f00dba6a12c6e3ac4bfd358f9faa8d295e83178dd1780ed01fc7d98e7
4
+ data.tar.gz: 6b38b89f1fdd0ee64010ecef52170b4532da1ccd6ff37576335153677736128b
5
5
  SHA512:
6
- metadata.gz: f154355b8c697a7b0ed239e98ab952745677b6e2036354e5f5948a92c6330d98032208e2da2bf466c5ccd2894024dd9c204a141a95e2da4a363b8062f3f107bd
7
- data.tar.gz: 3636ffc67cca86978bec151f73e601eed3eb3c121bf5672bdcc4dabde319c81d907e61b28cc4b917d8a62b64a2050387503179264ae3ec3e6ad01b6ca057f8fd
6
+ metadata.gz: 6ee3729b9b6488b8a356f1d6b192b63b13d64612ef2f55d2c09c095ed32fd4697dd9683d47588ddd439a011ec7b9963554336ce1048fbf12fcc422000bbb80ea
7
+ data.tar.gz: 937c7c44b445e0d9d2a5d3a7447d4364fa578931010127d157046d11386dfeece6cfe7d1673bdef7630f18bf4b4a12cc2527020f9a7dc666050c60865d9bf3ef
data/.travis.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2.2
3
+ - 2.3.0
4
4
  before_install: gem install bundler -v 1.10.6
5
5
  branches:
6
6
  only:
data/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
- # v0.1.1 / 2016-03-20
1
+ # Change Log
2
+ ## v0.2.0 / 2023-03-14
2
3
 
4
+ ### Added
5
+ - content_type (#2)
6
+
7
+ ### Fixed
8
+ - addresses to support new version mail
9
+
10
+ ## v0.1.2 / 2016-08-06
11
+
12
+ ### Added
13
+ - label id
14
+
15
+ ## v0.1.1 / 2016-03-20
3
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,24 +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
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
25
26
  }
26
- params.delete_if { |k, v| v.nil? }
27
+ params.delete_if { |_k, v| v.nil? }
27
28
 
28
- result = RestClient.post( 'http://api.sendcloud.net/apiv2/mail/send', params )
29
+ result = RestClient.post('http://api.sendcloud.net/apiv2/mail/send', params)
29
30
  json = JSON.parse(result.force_encoding('UTF-8'))
30
- error(json) unless json["result"]
31
+ error(json) unless json['result']
31
32
  unless @file.nil?
32
- File.unlink(@file.path) rescue nil
33
+ begin
34
+ File.unlink(@file.path)
35
+ rescue StandardError
36
+ nil
37
+ end
33
38
  end
34
39
  end
35
40
 
@@ -40,7 +45,7 @@ module SendcloudMailer
40
45
  end
41
46
 
42
47
  def from
43
- @mail.header.fields.find{|f| f.name == "From"}.value
48
+ @mail.header.fields.find { |f| f.name == 'From' }.value
44
49
  end
45
50
 
46
51
  def to
@@ -58,23 +63,31 @@ module SendcloudMailer
58
63
  def addresses(name)
59
64
  result = @mail.header.fields.find { |f| f.name == name }
60
65
  unless result.nil?
61
- addresses = result.address_list.addresses
66
+ addresses = result.addresses
62
67
  addresses.join(';')
63
68
  end
64
69
  end
65
70
 
66
71
  def html
67
- @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
68
77
  end
69
78
 
70
79
  def plain
71
- @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
72
85
  end
73
86
 
74
87
  def attachments
75
88
  return nil if @mail.attachments.length == 0
76
89
 
77
- @mail.attachments.each do | attachment |
90
+ @mail.attachments.each do |attachment|
78
91
  filename = attachment.filename
79
92
  # sendcloud api can only single file
80
93
  @file = File.new(File.join(Dir.tmpdir, filename), 'w+b')
@@ -82,5 +95,9 @@ module SendcloudMailer
82
95
  return @file
83
96
  end
84
97
  end
98
+
99
+ def label_id
100
+ @mail.header.fields.find { |f| f.name == 'label-id' }.try :value
101
+ end
85
102
  end
86
103
  end
@@ -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.1"
2
+ VERSION = '0.2.0'
3
3
  end
@@ -1,7 +1,8 @@
1
- require "action_mailer"
2
- require "sendcloud-mailer/version"
3
- require "sendcloud-mailer/base"
4
- require "sendcloud-mailer/interceptor"
1
+ require 'active_support/rescuable'
2
+ require 'action_mailer'
3
+ require 'sendcloud-mailer/version'
4
+ require 'sendcloud-mailer/base'
5
+ require 'sendcloud-mailer/interceptor'
5
6
 
6
7
  module SendcloudMailer
7
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.1
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-03-20 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: []