func (m *MailgunImpl) ParseAddresses(addresses ...string) ([]string, []string, error) {
	r := newHTTPRequest(generatePublicApiUrl(m, addressParseEndpoint))
	r.setClient(m.Client())
	r.addParameter("addresses", strings.Join(addresses, ","))
	r.setBasicAuth(basicAuthUser, m.PublicApiKey())
	var response addressParseResult
	err := getResponseFromJSON(r, &response)
	if err != nil {
		return nil, nil, err
	}
	return response.Parsed, response.Unparseable, nil
}
ParseAddresses takes a list of addresses and sorts them into valid and invalid address categories.
NOTE: Use of this function requires a proper public API key.  The private API key will not work.
package mailgun
import (
	"strings"
)
type EmailVerificationParts struct {
	LocalPart   string `json:"local_part"`
	Domain      string `json:"domain"`
	DisplayName string `json:"display_name"`
}
type EmailVerification struct {
	IsValid    bool                   `json:"is_valid"`
	Parts      EmailVerificationParts `json:"parts"`
	Address    string                 `json:"address"`
	DidYouMean string                 `json:"did_you_mean"`
}
type addressParseResult struct {
	Parsed      []string `json:"parsed"`
	Unparseable []string `json:"unparseable"`
}
func (m *MailgunImpl) ValidateEmail(email string) (EmailVerification, error) {
	r := newHTTPRequest(generatePublicApiUrl(m, addressValidateEndpoint))
	r.setClient(m.Client())
	r.addParameter("address", email)
	r.setBasicAuth(basicAuthUser, m.PublicApiKey())
	var response EmailVerification
	err := getResponseFromJSON(r, &response)
	if err != nil {
		return EmailVerification{}, err
	}
	return response, nil
}