net-receiver 1.0.0 → 1.1.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
2
  SHA1:
3
- metadata.gz: bde94c119d7f2b94cb8d95a4781311477aa87fc5
4
- data.tar.gz: b9ee22f2760943cbc37c366446f3021fda514570
3
+ metadata.gz: 57dd413a29c66bd22d3180358883ec568e373c28
4
+ data.tar.gz: 4bb6ee9f711267d8b21c541c6436a04729c3c2d9
5
5
  SHA512:
6
- metadata.gz: f903d9f64e4f4307ab1a447050f5bca81f14bc953810f79ac3941a8a1745205a4f808f23162e79f911d91d3a547960ea9098686780ac382bd5189fec6e562e0c
7
- data.tar.gz: 619c8e9a7f8f993dee32714fdabe595b37dba33d7268389a81697914c8f0caf4c85b754e52702f3a648afda7f16557a86f4af4ed503fb3bcd0c25432f43b2164
6
+ metadata.gz: 3bb7ccee9c50eb0d09e55eca0a4f7c6f9fa5a45d975c0d3393d48a62b5dc622a7d77cba6c5ad9d3625c9e1d347f1634986588c2c075319b565ab62e67b3e80e3
7
+ data.tar.gz: 0bc5705a43c46d1200130385e787a448b10af74431ed38767f30339b999c960a94de3cf4a8ec23aedb3f42597be91798e1d0a161f245af9d05eb97c514ff1f67
data/CHANGELOG.md CHANGED
@@ -1,2 +1,17 @@
1
- # v1.0
1
+ # v1.1.0
2
+ Changed the defaults for :sender_mx_check and recipient_mx_check to true because the cost is low and we need to know if the sender has a mail server (remote-->local), or if the recipient has a mail server (local-->remote). You can still turn off these checks, if you don't want them.
3
+
4
+ In `psych_value`, added a test for "MAIL FROM: <>" (a bounce message). In the case this address is detected, the special value "<>" is passed back from psych_value in :url, and no :domain is created. (In other words, test for `:url=>"<>"` first.)
5
+
6
+ ````ruby
7
+ :mailfrom=>{
8
+ :value=>"<>",
9
+ :name=>"",
10
+ :url=>"<>"
11
+ },
12
+ ````
13
+
14
+
15
+
16
+ # v1.0.0
2
17
  This is the initial load of the gem. If you find a problem, report it to me at mjwelchphd@gmail.com, or FORK the library, fix the bug, then add a Pull Request.
data/README.md CHANGED
@@ -166,7 +166,7 @@ In this example, `def mail_from` overrides the method of the same name in Receiv
166
166
  :sender_character_check | true | This makes `receiver` test for legal characters on the MAIL FROM address.
167
167
  :recipient_character_check | false | This makes `receiver`test for legal characters on the RCPT TO address.
168
168
  :sender_mx_check | true | Tries to obtain the MX name and IP from the DNS for MAIL FROM.
169
- :recipient_mx_check | false | Tries to obtain the MX name and IP from the DNS for RCPT TO.
169
+ :recipient_mx_check | true | Tries to obtain the MX name and IP from the DNS for RCPT TO.
170
170
  :max_failed_msgs_per_period | 3 | I use this to say, "after 3 failed attempts, lock out the sender for s short period of time (10 minutes in my case)."
171
171
 
172
172
  I may add more defaults to this list in the future, but I'll try to make them generalized, so they fit anyone's need.
data/lib/net/receiver.rb CHANGED
@@ -66,8 +66,8 @@ module Net
66
66
  def initialize(connection, options)
67
67
  @connection = connection
68
68
  @option_list = [[:ehlo_validation_check, false], [:sender_character_check, true],
69
- [:recipient_character_check, false], [:sender_mx_check, true],
70
- [:recipient_mx_check, false],[:max_failed_msgs_per_period,3]]
69
+ [:recipient_character_check, true], [:sender_mx_check, true],
70
+ [:recipient_mx_check, true],[:max_failed_msgs_per_period,3]]
71
71
  @options = options
72
72
  @option_list.each do |key,value|
73
73
  @options[key] = value if !options.has_key?(key)
@@ -87,7 +87,7 @@ module Net
87
87
  end
88
88
 
89
89
  def write_text(text, echo)
90
- puts "<#{@enc_ind} #{text.inspect}"
90
+ puts "<#{@enc_ind} #{text.inspect}" # DEBUG!
91
91
  @connection.write(text)
92
92
  @connection.write(CRLF)
93
93
  @has_level_5_warnings = true if text[0]=='5'
@@ -133,17 +133,17 @@ puts "<#{@enc_ind} #{text.inspect}"
133
133
  text = "SLAM"
134
134
  end
135
135
  LOG.info("%06d"%Process::pid) {" #{@enc_ind}> #{text}"} if echo && LogConversation
136
- puts " #{@enc_ind}> #{text.inspect}"
136
+ puts " #{@enc_ind}> #{text.inspect}" # DEBUG!
137
137
  return text
138
138
  end
139
139
  rescue Errno::EIO => e
140
140
  LOG.error("%06d"%Process::pid) {"#{e.to_s}"}
141
141
  raise Quit
142
142
  rescue Timeout::Error => e
143
- puts " #{@enc_ind}> \"TIMEOUT\""
143
+ puts " #{@enc_ind}> \"TIMEOUT\"" # DEBUG!
144
144
  return "TIMEOUT"
145
145
  end
146
- puts " #{@enc_ind}> *669* Investigate why this got here"
146
+ puts " #{@enc_ind}> *669* Investigate why this got here" # DEBUG!
147
147
  end
148
148
 
149
149
  #-------------------------------------------------------#
@@ -153,9 +153,17 @@ puts " #{@enc_ind}> *669* Investigate why this got here"
153
153
  # the value gets set in both MAIL FROM and RCPT TO
154
154
  part[:value] = value
155
155
 
156
- # there MUST be a sender/recipient address
157
- return "501 5.1.7 '#{part[:value]}' No proper address (<...>) on the #{Kind[kind]} line" \
158
- if (m = value.match(/^(.*)<(.+@.+\..+)>$/)).nil?
156
+ # check for a bounce message
157
+ case
158
+ when (kind==:mailfrom) & (m = value.match(/^(.*)<>$/))
159
+ # it's a bounce message
160
+ part[:name] = m[1].strip
161
+ part[:url] = "<>"
162
+ return nil
163
+ when (m = value.match(/^(.*)<(.+@.+\..+)>$/)).nil?
164
+ # there MUST be a sender/recipient address
165
+ return "501 5.1.7 '#{part[:value]}' No proper address (<...>) on the #{Kind[kind]} line" \
166
+ end
159
167
 
160
168
  # break up the address
161
169
  part[:name] = m[1].strip
data/lib/net/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Net
2
- BUILD_VERSION = "1.0.0"
3
- BUILD_DATE = "2016-09-21"
2
+ BUILD_VERSION = "1.1.0"
3
+ BUILD_DATE = "2016-09-27"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-receiver
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael J. Welch, Ph.D.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-21 00:00:00.000000000 Z
11
+ date: 2016-09-27 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Ruby Net Receiver.
14
14
  email: