All Projects → AfterShip → Email Verifier

AfterShip / Email Verifier

Licence: mit
✅ A Go library for email verification without sending any emails.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Email Verifier

NeverBounceAPI-PHP
This package provides convenient methods to integrate the NeverBounce API into your project.
Stars: ✭ 22 (-86.42%)
Mutual labels:  validation, email, verification
Trumail
✉️ ✅ A Fast and Free Email Verification API written in Go
Stars: ✭ 937 (+478.4%)
Mutual labels:  validation, email, verification
Mailer
A lightweight PHP SMTP mail sender
Stars: ✭ 53 (-67.28%)
Mutual labels:  email, smtp
Tcpbin
Very crude and poorly written HTTP(s) and SMTP bin
Stars: ✭ 85 (-47.53%)
Mutual labels:  email, smtp
Mailway
Mailway installer, host your own Mailway instance
Stars: ✭ 94 (-41.98%)
Mutual labels:  email, smtp
Ismailfine
A simple (but correct) library for validating email addresses. Supports mail addresses as defined in rfc5322 as well as the new Internationalized Mail Address standards (rfc653x). Based on https://github.com/jstedfast/EmailValidation
Stars: ✭ 9 (-94.44%)
Mutual labels:  validation, email
Sendria
Sendria (formerly MailTrap) is a SMTP server designed to run in your dev/test environment, that is designed to catch any email you or your application is sending, and display it in a web interface instead of sending to real world.
Stars: ✭ 30 (-81.48%)
Mutual labels:  email, smtp
Nanolist
mailing lists - the unix way
Stars: ✭ 153 (-5.56%)
Mutual labels:  email, smtp
Deltachat Desktop
Email-based instant messaging for Desktop.
Stars: ✭ 526 (+224.69%)
Mutual labels:  email, smtp
Bamboo smtp
An SMTP adapter for Bamboo.
Stars: ✭ 111 (-31.48%)
Mutual labels:  email, smtp
Cli
Get a programmable email address. Automate what happens when you receive emails. It's like Zapier for devs who hate emails.
Stars: ✭ 105 (-35.19%)
Mutual labels:  email, smtp
Mailinabox
Mail-in-a-Box helps individuals take back control of their email by defining a one-click, easy-to-deploy SMTP+everything else server: a mail server in a box.
Stars: ✭ 10,649 (+6473.46%)
Mutual labels:  email, smtp
Lettre
a mailer library for Rust
Stars: ✭ 713 (+340.12%)
Mutual labels:  email, smtp
Free Email Forwarding
The best free email forwarding for custom domains. Visit our website to get started (SMTP server)
Stars: ✭ 2,024 (+1149.38%)
Mutual labels:  email, smtp
Exim
Exim Mail Transport Agent - source, testsuite and documentation
Stars: ✭ 545 (+236.42%)
Mutual labels:  email, smtp
Opaquemail
.NET email library and proxy supporting IMAP, POP3, and SMTP with S/MIME and PGP.
Stars: ✭ 91 (-43.83%)
Mutual labels:  email, smtp
Magma
The magma server daemon, is an encrypted email system with support for SMTP, POP, IMAP, HTTP and MOLTEN,. Additional support for DMTP and DMAP is currently in active development.
Stars: ✭ 1,740 (+974.07%)
Mutual labels:  email, smtp
Salmon
A Python Mail Server
Stars: ✭ 482 (+197.53%)
Mutual labels:  email, smtp
Check If Email Exists
Check if an email address exists without sending any email, written in Rust.
Stars: ✭ 497 (+206.79%)
Mutual labels:  email, smtp
Mailmergelib
MailMergeLib is a mail message client library which provides comfortable mail merge capabilities for text, inline images and attachments, as well as good throughput and fault tolerance for sending mail messages.
Stars: ✭ 97 (-40.12%)
Mutual labels:  email, smtp

email-verifier

✉️ A Go library for email verification without sending any emails.

Build Status Godoc Coverage Status Go Report Card license

Features

  • Email Address Validation: validates if a string contains a valid email.
  • Email Verification Lookup via SMTP: performs an email verification on the passed email
  • MX Validation: checks the DNS MX records for the given domain name
  • Misc Validation: including Free email provider check, Role account validation, Disposable emails address (DEA) validation
  • Email Reachability: checks how confident in sending an email to the address

Install

Use go get to install this package.

go get -u github.com/AfterShip/email-verifier

Usage

Basic usage

Use Verify method to verify an email address with different dimensions

package main

import (
    "fmt"

    "github.com/AfterShip/email-verifier"
)

var (
    verifier = emailverifier.NewVerifier()
)

func main() {

    email := "[email protected]"
    ret, err := verifier.Verify(email)
    if err != nil {
        fmt.Println("check email failed: ", err)
        return
    }

    fmt.Println("email validation result", ret)
}

Email verification Lookup

Use CheckSMTP to performs an email verification lookup via SMTP.

var (
    verifier = emailverifier.
        NewVerifier().
        EnableSMTPCheck()
)

func main() {

    domain := "domain.org"
    ret, err := verifier.CheckSMTP(domain)
    if err != nil {
        fmt.Println("check smtp failed: ", err)
        return
    }

    fmt.Println("smtp validation result: ", ret)

}

Note: because most of the ISPs block outgoing SMTP requests through port 25 to prevent email spamming, the module will not perform SMTP checking by default. You can initialize the verifier with EnableSMTPCheck() to enable such capability if port 25 is usable.

Misc Validation

To check if an email domain is disposable via IsDisposable

var (
    verifier = emailverifier.
        NewVerifier().
        EnableAutoUpdateDisposable()
)

func main() {
    domain := "domain.org"
    ret := verifier.IsDisposable(domain)
    fmt.Println("misc validation result: ", ret)
}

Note: It is possible to automatically update the disposable domains daily by initializing verifier with EnableAutoUpdateDisposable()

For more detailed documentation, please check on godoc.org 👉 email-verifier

Similar Libraries Comparison

email-verifier trumail check-if-email-exists freemail
Features 〰️ 〰️ 〰️ 〰️
Disposable email address validation ✅, but not available in free lib
Disposable address autoupdate 🤔
Free email provider check ✅, but not available in free lib
Role account validation
Syntax validation
Email reachability
DNS records validation
Email deliverability
Mailbox disabled
Full inbox
Host exists
Catch-all
Gravatar ✅, but not available in free lib
Typo check 🔜 ✅, but not available in free lib
Honeyport dection 🔜
Bounce email check 🔜
Tech 〰️ 〰️ 〰️ 〰️
Provide API 🔜
Free API 🔜
Language Go Go Rust JavaScript
Active maintain
High Performance

FAQ

The library hangs/takes a long time after 30 seconds when performing email verification lookup via SMTP

Most ISPs block outgoing SMTP requests through port 25 to prevent email spamming. email-verifier needs to have this port open to make a connection to the email's SMTP server. With the port being blocked, it is not possible to perform such checking, and it will instead hang until timeout error. Unfortunately, there is no easy workaround for this issue.

For more information, you may also visit this StackOverflow thread.

The output shows "connection refused" in the smtp.error field.

This error can also be due to SMTP ports being blocked by the ISP, see the above answer.

What does reachable: "unknown" means

This means that the server does not allow real-time verification of an email right now, or the email provider is a catch-all email server.

Credits

Contributing

For details on contributing to this repository, see the contributing guide.

License

This package is licensed under MIT license. See LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].