Sample code for 30+ languages & platforms
Go

Verify Email Recipients

A way to possibly determine valid/invalid email addresses. I would recommend being very careful about doing this because your IP address may be flagged as a potential spammer by the mail server (because you are probing for valid/invalid email addresses). This Chilkat functionality existed for many years, before this kind of activity became a problem. The functionality remains only because it is useful for some to test with their own SMTP servers.

Chilkat Go Downloads

Go
    success := false

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    mailman := chilkat.NewMailMan()

    // SMTP connection settings...
    mailman.SetSmtpHost("smtp.example.com")
    mailman.SetSmtpUsername("MY_SMTP_USERNAME")
    mailman.SetSmtpPassword("MY_SMTP_PASSWORD")
    mailman.SetSmtpSsl(true)
    mailman.SetSmtpPort(465)

    // Create a new email object
    email := chilkat.NewEmail()

    email.SetSubject("This is a test")
    email.SetBody("This is a test")
    email.SetFrom("myemail@example.com")
    success = email.AddTo("person1","person1@example.com")
    success = email.AddTo("person2","person2@example.com")
    success = email.AddTo("person3","person3@example.com")
    // The SMTP server smtp.example.com won't know anything about an email address @somewhere_else.com
    success = email.AddTo("person3","person4@somewhere_else.com")
    // ...

    // Verify recipients.
    // **** See the warning about using this API method in the description above.
    // (An SMTP server only knows valid email address for its own domain.  For example,
    // smtp.example.com *may* only know if person1@example.com is valid or invalid, but does
    // not know anything about the validity of email addresses having other domains.)
    badAddrs := chilkat.NewStringArray()
    success = mailman.VerifyRecips(email,badAddrs)
    if success != true {
        fmt.Println(mailman.LastErrorText())
        mailman.DisposeMailMan()
        email.DisposeEmail()
        badAddrs.DisposeStringArray()
        return
    }

    i := 0
    for i < badAddrs.Count() {
        fmt.Println(*badAddrs.GetString(i))
        i = i + 1
    }

    fmt.Println("done.")

    mailman.DisposeMailMan()
    email.DisposeEmail()
    badAddrs.DisposeStringArray()