net-receiver 1.0.0 → 1.1.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 +4 -4
- data/CHANGELOG.md +16 -1
- data/README.md +1 -1
- data/lib/net/receiver.rb +17 -9
- data/lib/net/version.rb +2 -2
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 57dd413a29c66bd22d3180358883ec568e373c28
         | 
| 4 | 
            +
              data.tar.gz: 4bb6ee9f711267d8b21c541c6436a04729c3c2d9
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 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 |  | 
| 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,  | 
| 70 | 
            -
                    [:recipient_mx_check,  | 
| 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 | 
            -
                  #  | 
| 157 | 
            -
                   | 
| 158 | 
            -
             | 
| 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
    
    
    
        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. | 
| 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- | 
| 11 | 
            +
            date: 2016-09-27 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies: []
         | 
| 13 13 | 
             
            description: Ruby Net Receiver.
         | 
| 14 14 | 
             
            email:
         |