Sample code for 30+ languages & platforms
Perl

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

Chilkat2 Perl
use strict;
use warnings;
use Chilkat2;

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

my $mailman = Chilkat2::MailMan->new;

# SMTP connection settings...
$mailman->SmtpHost('smtp.example.com');
$mailman->SmtpUsername('MY_SMTP_USERNAME');
$mailman->SmtpPassword('MY_SMTP_PASSWORD');
$mailman->SmtpSsl(1);
$mailman->SmtpPort(465);

# Create a new email object
my $email = Chilkat2::Email->new;

$email->Subject('This is a test');
$email->Body('This is a test');
$email->From('myemail@example.com');
my $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.)
my $badAddrs = Chilkat2::StringArray->new;
$success = $mailman->VerifyRecips($email, $badAddrs);
if (!$success) {
    print $mailman->LastErrorText, "\n";
    exit;
}

my $i = 0;
while ($i < $badAddrs->Count) {
    print $badAddrs->GetString($i), "\n";
    $i = $i + 1;
}

print "done.\n";