net-smtp 0.3.0 → 0.3.2
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 +4 -4
- data/lib/net/smtp.rb +66 -12
- data/net-smtp.gemspec +1 -3
- metadata +4 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 642b3ab1e326ac890c33653e8293421558c50a8d6cdc3483b5c41edb26bdaebe
|
4
|
+
data.tar.gz: 8c31ba69f42e11a41eda04a31cffe375bcca4cee447b9bc1b1cda218a8f905f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2b5433005fe906635edee7e0bb1c9d0d81a6fff1da5af97ad39b16bf7e8a3330dafa9d9a513a3e83b17fe5a53c1489e07f52445c8cdefd81192f83a8cc4f6e7
|
7
|
+
data.tar.gz: be1a223db50575fbb0f14ebac46af142b0f109d422049d5ae49c57a0548c4560904931d8b8c75cc35e95c1978ad9c620ed059bee541d7b443f7a3668e1df2a43
|
data/lib/net/smtp.rb
CHANGED
@@ -35,8 +35,13 @@ module Net
|
|
35
35
|
attr_reader :response
|
36
36
|
|
37
37
|
def initialize(response, message: nil)
|
38
|
-
|
39
|
-
|
38
|
+
if response.is_a?(::Net::SMTP::Response)
|
39
|
+
@response = response
|
40
|
+
@message = message
|
41
|
+
else
|
42
|
+
@response = nil
|
43
|
+
@message = message || response
|
44
|
+
end
|
40
45
|
end
|
41
46
|
|
42
47
|
def message
|
@@ -179,7 +184,7 @@ module Net
|
|
179
184
|
# user: 'Your Account', secret: 'Your Password', authtype: :cram_md5)
|
180
185
|
#
|
181
186
|
class SMTP < Protocol
|
182
|
-
VERSION = "0.3.
|
187
|
+
VERSION = "0.3.2"
|
183
188
|
|
184
189
|
Revision = %q$Revision$.split[1]
|
185
190
|
|
@@ -251,6 +256,15 @@ module Net
|
|
251
256
|
@ssl_context_params = ssl_context_params
|
252
257
|
end
|
253
258
|
|
259
|
+
# If +true+, verify th server's certificate.
|
260
|
+
attr_accessor :tls_verify
|
261
|
+
|
262
|
+
# The hostname for verifying hostname in the server certificatate.
|
263
|
+
attr_accessor :tls_hostname
|
264
|
+
|
265
|
+
# Hash for additional SSLContext parameters.
|
266
|
+
attr_accessor :ssl_context_params
|
267
|
+
|
254
268
|
# Provide human-readable stringification of class state.
|
255
269
|
def inspect
|
256
270
|
"#<#{self.class} #{@address}:#{@port} started=#{@started}>"
|
@@ -274,11 +288,14 @@ module Net
|
|
274
288
|
capable?('STARTTLS')
|
275
289
|
end
|
276
290
|
|
291
|
+
# true if the EHLO response contains +key+.
|
277
292
|
def capable?(key)
|
278
293
|
return nil unless @capabilities
|
279
294
|
@capabilities[key] ? true : false
|
280
295
|
end
|
281
|
-
|
296
|
+
|
297
|
+
# The server capabilities by EHLO response
|
298
|
+
attr_reader :capabilities
|
282
299
|
|
283
300
|
# true if server advertises AUTH PLAIN.
|
284
301
|
# You cannot get valid value before opening SMTP session.
|
@@ -631,7 +648,7 @@ module Net
|
|
631
648
|
do_helo helo_domain
|
632
649
|
if ! tls? and (starttls_always? or (capable_starttls? and starttls_auto?))
|
633
650
|
unless capable_starttls?
|
634
|
-
raise SMTPUnsupportedCommand
|
651
|
+
raise SMTPUnsupportedCommand, "STARTTLS is not supported on this server"
|
635
652
|
end
|
636
653
|
starttls
|
637
654
|
@socket = new_internet_message_io(tlsconnect(s, @ssl_context_starttls))
|
@@ -703,9 +720,9 @@ module Net
|
|
703
720
|
# binary message with this method. +msgstr+ should include both
|
704
721
|
# the message headers and body.
|
705
722
|
#
|
706
|
-
# +from_addr+ is a String representing the source mail address.
|
723
|
+
# +from_addr+ is a String or Net::SMTP::Address representing the source mail address.
|
707
724
|
#
|
708
|
-
# +to_addr+ is a String or
|
725
|
+
# +to_addr+ is a String or Net::SMTP::Address or Array of them, representing
|
709
726
|
# the destination mail address or addresses.
|
710
727
|
#
|
711
728
|
# === Example
|
@@ -716,6 +733,12 @@ module Net
|
|
716
733
|
# ['dest@example.com', 'dest2@example.com']
|
717
734
|
# end
|
718
735
|
#
|
736
|
+
# Net::SMTP.start('smtp.example.com') do |smtp|
|
737
|
+
# smtp.send_message msgstr,
|
738
|
+
# Net::SMTP::Address.new('from@example.com', size: 12345),
|
739
|
+
# Net::SMTP::Address.new('dest@example.com', notify: :success)
|
740
|
+
# end
|
741
|
+
#
|
719
742
|
# === Errors
|
720
743
|
#
|
721
744
|
# This method may raise:
|
@@ -752,9 +775,9 @@ module Net
|
|
752
775
|
#
|
753
776
|
# === Parameters
|
754
777
|
#
|
755
|
-
# +from_addr+ is a String representing the source mail address.
|
778
|
+
# +from_addr+ is a String or Net::SMTP::Address representing the source mail address.
|
756
779
|
#
|
757
|
-
# +to_addr+ is a String or
|
780
|
+
# +to_addr+ is a String or Net::SMTP::Address or Array of them, representing
|
758
781
|
# the destination mail address or addresses.
|
759
782
|
#
|
760
783
|
# === Example
|
@@ -904,8 +927,10 @@ module Net
|
|
904
927
|
getok("EHLO #{domain}")
|
905
928
|
end
|
906
929
|
|
930
|
+
# +from_addr+ is +String+ or +Net::SMTP::Address+
|
907
931
|
def mailfrom(from_addr)
|
908
|
-
|
932
|
+
addr = Address.new(from_addr)
|
933
|
+
getok((["MAIL FROM:<#{addr.address}>"] + addr.parameters).join(' '))
|
909
934
|
end
|
910
935
|
|
911
936
|
def rcptto_list(to_addrs)
|
@@ -916,7 +941,7 @@ module Net
|
|
916
941
|
begin
|
917
942
|
rcptto addr
|
918
943
|
rescue SMTPAuthenticationError
|
919
|
-
unknown_users << addr.dump
|
944
|
+
unknown_users << addr.to_s.dump
|
920
945
|
else
|
921
946
|
ok_users << addr
|
922
947
|
end
|
@@ -929,8 +954,10 @@ module Net
|
|
929
954
|
ret
|
930
955
|
end
|
931
956
|
|
957
|
+
# +to_addr+ is +String+ or +Net::SMTP::Address+
|
932
958
|
def rcptto(to_addr)
|
933
|
-
|
959
|
+
addr = Address.new(to_addr)
|
960
|
+
getok((["RCPT TO:<#{addr.address}>"] + addr.parameters).join(' '))
|
934
961
|
end
|
935
962
|
|
936
963
|
# This method sends a message.
|
@@ -1139,6 +1166,33 @@ module Net
|
|
1139
1166
|
@debug_output << msg + "\n" if @debug_output
|
1140
1167
|
end
|
1141
1168
|
|
1169
|
+
# Address with parametres for MAIL or RCPT command
|
1170
|
+
class Address
|
1171
|
+
# mail address [String]
|
1172
|
+
attr_reader :address
|
1173
|
+
# parameters [Array<String>]
|
1174
|
+
attr_reader :parameters
|
1175
|
+
|
1176
|
+
# :call-seq:
|
1177
|
+
# initialize(address, parameter, ...)
|
1178
|
+
#
|
1179
|
+
# address +String+ or +Net::SMTP::Address+
|
1180
|
+
# parameter +String+ or +Hash+
|
1181
|
+
def initialize(address, *args, **kw_args)
|
1182
|
+
if address.kind_of? Address
|
1183
|
+
@address = address.address
|
1184
|
+
@parameters = address.parameters
|
1185
|
+
else
|
1186
|
+
@address = address
|
1187
|
+
@parameters = (args + [kw_args]).map{|param| Array(param)}.flatten(1).map{|param| Array(param).compact.join('=')}
|
1188
|
+
end
|
1189
|
+
end
|
1190
|
+
|
1191
|
+
def to_s
|
1192
|
+
@address
|
1193
|
+
end
|
1194
|
+
end
|
1195
|
+
|
1142
1196
|
end # class SMTP
|
1143
1197
|
|
1144
1198
|
SMTPSession = SMTP # :nodoc:
|
data/net-smtp.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.description = %q{Simple Mail Transfer Protocol client library for Ruby.}
|
18
18
|
spec.homepage = "https://github.com/ruby/net-smtp"
|
19
19
|
spec.licenses = ["Ruby", "BSD-2-Clause"]
|
20
|
-
spec.required_ruby_version = ">= 2.
|
20
|
+
spec.required_ruby_version = ">= 2.6.0"
|
21
21
|
|
22
22
|
spec.metadata["homepage_uri"] = spec.homepage
|
23
23
|
spec.metadata["source_code_uri"] = spec.homepage
|
@@ -30,6 +30,4 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.require_paths = ["lib"]
|
31
31
|
|
32
32
|
spec.add_dependency "net-protocol"
|
33
|
-
spec.add_dependency "digest"
|
34
|
-
spec.add_dependency "timeout"
|
35
33
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-smtp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yukihiro Matsumoto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-09-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-protocol
|
@@ -24,34 +24,6 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: digest
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: timeout
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
27
|
description: Simple Mail Transfer Protocol client library for Ruby.
|
56
28
|
email:
|
57
29
|
- matz@ruby-lang.org
|
@@ -77,14 +49,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
77
49
|
requirements:
|
78
50
|
- - ">="
|
79
51
|
- !ruby/object:Gem::Version
|
80
|
-
version: 2.
|
52
|
+
version: 2.6.0
|
81
53
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
54
|
requirements:
|
83
55
|
- - ">="
|
84
56
|
- !ruby/object:Gem::Version
|
85
57
|
version: '0'
|
86
58
|
requirements: []
|
87
|
-
rubygems_version: 3.
|
59
|
+
rubygems_version: 3.4.0.dev
|
88
60
|
signing_key:
|
89
61
|
specification_version: 4
|
90
62
|
summary: Simple Mail Transfer Protocol client library for Ruby.
|