Skip to content

cameronnewman/go-emailvalidation

Repository files navigation

go-emailvalidation

Build GoDoc Go Report Card FOSSA Status

Purpose

Simple email validation package. Package supports either fast email validation via RFC compliant regex OR slower recursive DNS lookup. DNS validation checks for valid NS & MX records using the local DNS settings.

Supported versions

The current version is v3

Please import via go modules github.com/cameronnewman/go-emailvalidation/v3.

Usage

package main

import (
    "fmt"

    email "github.com/cameronnewman/go-emailvalidation/v3"
)

func main() {

    emailAddress := "John.Snow@gmaiiiiiiillllll.com"

    // Run all checks, including validating the format along with DNS lookups which
    // may be slower depending on your DNS server performance
    err := email.Validate(emailAddress)
    if err != nil {
        fmt.Println(err)
    }

    // Checks the format - this function performs no network
    // operations and is very fast
    err = email.ValidateFormat(emailAddress)
    if err != nil {
        fmt.Println(err)
    }

    // Checks domain NS & MX, along with format validation
    err = email.ValidateDomainRecords(emailAddress)
    if err != nil {
        fmt.Println(err)
    }

    // Normalize email address for storage
    address := email.Normalize(emailAddress)
    fmt.Println(address)
}

Issues

  • None

License

MIT Licensed