+cabal-version: 3.0
name: email-validator
-version: 0.0.2
-cabal-version: >= 1.8
+version: 1.0.1
author: Michael Orlitzky
maintainer: Michael Orlitzky <michael@orlitzky.com>
+homepage: https://michael.orlitzky.com/code/email-validator.xhtml
+bug-reports: mailto:michael@orlitzky.com
category: Utils
-license: GPL-3
+license: AGPL-3.0-only
license-file: doc/LICENSE
build-type: Simple
extra-source-files:
Perform basic syntax and deliverability checks on email addresses.
description:
Validate an email address using three techniques:
- .
+
* Ensuring that the length of local and domain parts is within the
RFC-specified limits.
- .
+
* A syntax check using a regular expression, or the full RFC 5322
grammar (see the @--rfc5322@ option).
- .
+
* Confirmation of the existence of an @MX@ record for the domain part of
the address. This is not required; in fact many domains accept mail
via an @A@ record for e.g. example.com which is used in lieu of an @MX@
record. This behavior can be controlled via the @--accept-a@ flag.
- .
+
These checks are performed in parallel using the number of available
threads. To increase the number of threads, you can pass the
appropriate flag to the GHC runtime.
- .
+
This will set the number of threads to 25:
- .
+
@
- $ email-validator -i addresses.csv +RTS -N25
+ $ email-validator +RTS -N25 < addresses.csv
@
- .
+
/Input/
- .
- The @input@ file (default: stdin) should be a list of email addresses,
+
+ The @input@ (via stdin) should be a list of email addresses,
one per line. Empty lines will be ignored.
- .
+
/Output/
- .
- Valid email addresses will be written to the output file (default:
- stdout), one per line.
+
+ Valid email addresses will be written to stdout, one per line.
executable email-validator
build-depends:
- base == 4.*,
- bytestring == 0.10.*,
- cmdargs == 0.10.*,
- directory == 1.2.*,
- dns == 1.*,
- email-validate == 1.*,
- HUnit == 1.2.*,
- parallel-io == 0.3.*,
+ base >= 4.15 && < 5,
+ bytestring >= 0.10,
+ cmdargs >= 0.10,
+ dns >= 2,
+ email-validate >= 2,
+ HUnit >= 1.2,
+ parallel-io >= 0.3,
pcre-light >= 0.4,
- test-framework == 0.8.*,
- test-framework-hunit == 0.3.*
+ tasty >= 0.8,
+ tasty-hunit >= 0.8
+
+ default-language:
+ Haskell2010
main-is:
Main.hs
other-modules:
CommandLine
EmailAddress
- ExitCodes
-
- ghc-options:
- -Wall
- -fwarn-hi-shadowing
- -fwarn-missing-signatures
- -fwarn-name-shadowing
- -fwarn-orphans
- -fwarn-type-defaults
- -fwarn-tabs
- -fwarn-incomplete-record-updates
- -fwarn-monomorphism-restriction
- -fwarn-unused-do-bind
- -rtsopts
- -threaded
- -optc-O3
- -optc-march=native
- -O2
-
- ghc-prof-options:
- -prof
- -auto-all
- -caf-all
+ Paths_email_validator
+
+ autogen-modules:
+ Paths_email_validator
test-suite testsuite
type: exitcode-stdio-1.0
hs-source-dirs: src test
+ default-language: Haskell2010
main-is: TestSuite.hs
+
build-depends:
- base == 4.*,
- bytestring == 0.10.*,
- cmdargs == 0.10.*,
- directory == 1.2.*,
- dns == 1.*,
- email-validate == 1.*,
- HUnit == 1.2.*,
- parallel-io == 0.3.*,
+ base >= 4.15 && < 5,
+ bytestring >= 0.10,
+ email-validate >= 2,
+ HUnit >= 1.2,
pcre-light >= 0.4,
- test-framework == 0.8.*,
- test-framework-hunit == 0.3.*
-
- -- It's not entirely clear to me why I have to reproduce all of this.
- ghc-options:
- -Wall
- -fwarn-hi-shadowing
- -fwarn-missing-signatures
- -fwarn-name-shadowing
- -fwarn-orphans
- -fwarn-type-defaults
- -fwarn-tabs
- -fwarn-incomplete-record-updates
- -fwarn-monomorphism-restriction
- -fwarn-unused-do-bind
- -rtsopts
- -threaded
- -optc-O3
- -optc-march=native
- -O2
+ tasty >= 0.8,
+ tasty-hunit >= 0.8
+
+ other-modules:
+ EmailAddress
+
+
+test-suite doctests
+ type: exitcode-stdio-1.0
+ hs-source-dirs: test
+ default-language: Haskell2010
+ main-is: Doctests.hs
+ build-depends:
+ base >= 4.15 && < 5,
+ -- Additional test dependencies.
+ doctest >= 0.9
+
source-repository head
type: git
- location: http://michael.orlitzky.com/git/email-validator.git
+ location: https://gitweb.michael.orlitzky.com/email-validator.git
branch: master