# README
checkmail
Golang package for email validation.
- Format (simple regexp, see: https://www.w3.org/TR/html5/forms.html#valid-e-mail-address and https://davidcel.is/posts/stop-validating-email-addresses-with-regex/)
- Valid domain
- Valid user: verify if the user and mailbox really exist
Usage
Install the Checkmail package
go get github.com/badoux/checkmail
1. Format
func main() {
err := checkmail.ValidateFormat("ç$€§/[email protected]")
if err != nil {
fmt.Println(err)
}
}
output: invalid format
2. Domain
func main() {
err := checkmail.ValidateHost("[email protected]")
if err != nil {
fmt.Println(err)
}
}
output: unresolvable host
3. Host and User
If host is valid, requires valid SMTP serverHostName
(see to online validator) and serverMailAddress
to reverse validation
for prevent SPAN and BOTS.
func main() {
var (
serverHostName = "smtp.myserver.com" // set your SMTP server here
serverMailAddress = "[email protected]" // set your valid mail address here
)
err := checkmail.ValidateHostAndUser(serverHostName, serverMailAddress, "[email protected]")
if smtpErr, ok := err.(checkmail.SmtpError); ok && err != nil {
fmt.Printf("Code: %s, Msg: %s", smtpErr.Code(), smtpErr)
}
}
output: Code: 550, Msg: 550 5.1.1 The email account that you tried to reach does not exist.
License
Checkmail is licensed under the MIT License.
# Functions
DialTimeout returns a new Client connected to an SMTP server at addr.
No description provided by the author
No description provided by the author
ValidateHost validate mail host.
ValidateHostAndUser validate mail host and user.
ValidateMX validate if MX record exists for a domain.
# Variables
No description provided by the author
No description provided by the author