sendcloud-mailer 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +1 -1
- data/CHANGELOG.md +14 -1
- data/README.md +2 -2
- data/lib/sendcloud-mailer/base.rb +36 -19
- data/lib/sendcloud-mailer/interceptor.rb +1 -0
- data/lib/sendcloud-mailer/version.rb +1 -1
- data/lib/sendcloud-mailer.rb +5 -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/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
-
#
|
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
|
-
:
|
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,24 +12,29 @@ module SendcloudMailer
|
|
12
12
|
@mail = mail
|
13
13
|
|
14
14
|
params = {
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:
|
23
|
-
:
|
24
|
-
:
|
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 { |
|
27
|
+
params.delete_if { |_k, v| v.nil? }
|
27
28
|
|
28
|
-
result = RestClient.post(
|
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[
|
31
|
+
error(json) unless json['result']
|
31
32
|
unless @file.nil?
|
32
|
-
|
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 ==
|
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.
|
66
|
+
addresses = result.addresses
|
62
67
|
addresses.join(';')
|
63
68
|
end
|
64
69
|
end
|
65
70
|
|
66
71
|
def html
|
67
|
-
|
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?
|
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 |
|
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
|
data/lib/sendcloud-mailer.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
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
|
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: []
|