sendcloud-mailer 0.1.2 → 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 +5 -5
- data/CHANGELOG.md +12 -3
- data/README.md +2 -2
- data/lib/sendcloud-mailer/base.rb +32 -20
- data/lib/sendcloud-mailer/interceptor.rb +1 -0
- data/lib/sendcloud-mailer/version.rb +1 -1
- data/lib/sendcloud-mailer.rb +4 -4
- data/sendcloud-mailer.gemspec +3 -3
- metadata +12 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5cfff98f00dba6a12c6e3ac4bfd358f9faa8d295e83178dd1780ed01fc7d98e7
|
4
|
+
data.tar.gz: 6b38b89f1fdd0ee64010ecef52170b4532da1ccd6ff37576335153677736128b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ee3729b9b6488b8a356f1d6b192b63b13d64612ef2f55d2c09c095ed32fd4697dd9683d47588ddd439a011ec7b9963554336ce1048fbf12fcc422000bbb80ea
|
7
|
+
data.tar.gz: 937c7c44b445e0d9d2a5d3a7447d4364fa578931010127d157046d11386dfeece6cfe7d1673bdef7630f18bf4b4a12cc2527020f9a7dc666050c60865d9bf3ef
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,16 @@
|
|
1
|
-
#
|
1
|
+
# Change Log
|
2
|
+
## v0.2.0 / 2023-03-14
|
2
3
|
|
3
|
-
Added
|
4
|
+
### Added
|
5
|
+
- content_type (#2)
|
4
6
|
|
5
|
-
|
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
|
-
:
|
31
|
-
:
|
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
|
-
:
|
16
|
-
:
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:
|
23
|
-
:
|
24
|
-
:
|
25
|
-
:
|
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 { |
|
27
|
+
params.delete_if { |_k, v| v.nil? }
|
28
28
|
|
29
|
-
result = RestClient.post(
|
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[
|
31
|
+
error(json) unless json['result']
|
32
32
|
unless @file.nil?
|
33
|
-
|
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 ==
|
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.
|
66
|
+
addresses = result.addresses
|
63
67
|
addresses.join(';')
|
64
68
|
end
|
65
69
|
end
|
66
70
|
|
67
71
|
def html
|
68
|
-
|
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?
|
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 |
|
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')
|
data/lib/sendcloud-mailer.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'active_support/rescuable'
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
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
|
data/sendcloud-mailer.gemspec
CHANGED
@@ -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", "
|
24
|
-
spec.add_development_dependency "rake", "
|
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.
|
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:
|
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:
|
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:
|
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
|
-
|
167
|
-
|
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: []
|