Sample code for 30+ languages & platforms
AutoIt

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 AutoIt Downloads

AutoIt
Local $bSuccess = False

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

$oMailman = ObjCreate("Chilkat.MailMan")

; SMTP connection settings...
$oMailman.SmtpHost = "smtp.example.com"
$oMailman.SmtpUsername = "MY_SMTP_USERNAME"
$oMailman.SmtpPassword = "MY_SMTP_PASSWORD"
$oMailman.SmtpSsl = True
$oMailman.SmtpPort = 465

; Create a new email object
$oEmail = ObjCreate("Chilkat.Email")

$oEmail.Subject = "This is a test"
$oEmail.Body = "This is a test"
$oEmail.From = "myemail@example.com"
$bSuccess = $oEmail.AddTo("person1","person1@example.com")
$bSuccess = $oEmail.AddTo("person2","person2@example.com")
$bSuccess = $oEmail.AddTo("person3","person3@example.com")
; The SMTP server smtp.example.com won't know anything about an email address @somewhere_else.com
$bSuccess = $oEmail.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.)
$oBadAddrs = ObjCreate("Chilkat.StringArray")
$bSuccess = $oMailman.VerifyRecips($oEmail,$oBadAddrs)
If ($bSuccess <> True) Then
    ConsoleWrite($oMailman.LastErrorText & @CRLF)
    Exit
EndIf

Local $i = 0
While $i < $oBadAddrs.Count
    ConsoleWrite($oBadAddrs.GetString($i) & @CRLF)
    $i = $i + 1
Wend

ConsoleWrite("done." & @CRLF)