Merge pull request #40 from efagerberg/master

Make regex check for all whitespace and check for servfail
This commit is contained in:
Syrus Akbary 2015-07-24 14:46:01 -07:00
commit eaf2668a84
2 changed files with 53 additions and 2 deletions

51
vagrant_setup.md Normal file
View File

@ -0,0 +1,51 @@
How to Set Up Validate Email Using Vagrant on PC
-------------------------------------------------
1. Download Vagrant & Virtual Box
* http://www.vagrantup.com/downloads
* http://www.virtualbox.org/
2. Look at http://docs.vagrantup.com/v2/getting-started/ to make a linux virtual machine via vagrant
* tl;dr using bash (Can use regular Windows Terminal)
* Make a folder first, whenever you want to access the vm you will need to cd into that folder
```
$ vagrant init hashicorp/precise32
$ vagrant up
$ vagrant ssh
```
* This last command is used to go into your vm
3. Install pipin the vm
* http://www.saltycrane.com/blog/2010/02/how-install-pip-ubuntu/
* tl;dr
```
$ sudo apt-get install python-pip
```
4. Install pyDNS
```
This is a package dependency of validate email
$ sudo pip install pydns
```
5. Install git
```
$ sudo apt-get install git
```
6. Clone the validate_email repo to your vm
* (Since its a new machine you will need to clone using the https url)
* ```$ git clone git@github.com:efagerberg/validate_email.git```
* If you want to use your ssh keys on your machine you will need to add this line to the vagrant file under the config
* Looks somthing like this:
Vagrant::Config.run do |config|
# stuff
config.ssh.forward_agent = true
end
7. cd into validate_email and run script
```
$ cd validate_email
$ python validate_email.py
```

View File

@ -51,7 +51,7 @@ except (ImportError, AttributeError):
# even when it's not strictly necessary. This way we don't forget
# when it is necessary.)
#
WSP = r'[ \t]' # see 2.2.2. Structured Header Field Bodies
WSP = r'[\s]' # see 2.2.2. Structured Header Field Bodies
CRLF = r'(?:\r\n)' # see 2.2.3. Long Header Fields
NO_WS_CTL = r'\x01-\x08\x0b\x0c\x0f-\x1f\x7f' # see 3.2.1. Primitive Tokens
QUOTED_PAIR = r'(?:\\.)' # see 3.2.2. Quoted characters
@ -101,7 +101,7 @@ def get_mx_ip(hostname):
try:
MX_DNS_CACHE[hostname] = DNS.mxlookup(hostname)
except ServerError as e:
if e.rcode == 3: # NXDOMAIN (Non-Existent Domain)
if e.rcode == 3 or e.rcode == 2: # NXDOMAIN (Non-Existent Domain) or SERVFAIL
MX_DNS_CACHE[hostname] = None
else:
raise