PowerShell
PowerShell
MailMan GetSentToEmailAddrs
Demonstrates how to get the email addresses accepted by the SMTP server during an SMTP send.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
# Demonstrates how to get the successful recipients for the last email sent.
# Note: Success does not ensure actual delivery, nor does it mean the email address is actually valid.
# It may be that the email address is invalid and will get bounced at the destination.
# Also: An SMTP client (such as Chilkat, Mozilla Thunderbird, etc.) is only responsible for "handing off" the email to the SMTP server
# for delivery (either to a local mailbox, or to a remote mailbox where the SMTP server acts as a relay).
# The SMTP client's task is ended when the SMTP protocol exchange is completed, and the SMTP server says "OK, I've got it and I'll take it from here.".
# If the email never actually gets delivered, then there is a problem downstream of the Chilkat-->SMTP server handoff.
$mailman = New-Object Chilkat.MailMan
$mailman.SmtpHost = "outlook.office365.com"
$mailman.SmtpPort = 587
$mailman.StartTLS = $true
# Set the SMTP login/password
$mailman.SmtpUsername = "OFFICE365-SMTP-LOGIN"
$mailman.SmtpPassword = "OFFICE365-SMTP-PASSWORD"
# Create a new email object
$email = New-Object Chilkat.Email
$email.Subject = "Testing for Chilkat API..."
$email.Body = "Testing for Chilkat API..."
$email.From = "Chilkat Support <my-office365-user@mydomain.com>"
$success = $email.AddTo("Chilkat Admin","admin@chilkatsoft.com")
$success = $email.AddTo("Chilkat Support","support@chilkatsoft.com")
# To add more recipients, call AddTo, AddCC, or AddBcc once per recipient.
# Allow SendEmail to succeed even if some recipients are rejected immediately
# by the SMTP server.
$mailman.AllOrNone = $false
# Call SendEmail to connect to the SMTP server and send.
# The connection (i.e. session) to the SMTP server remains
# open so that subsequent SendEmail calls may use the
# same connection.
$success = $mailman.SendEmail($email)
if ($success -ne $true) {
$($mailman.LastErrorText)
exit
}
$success = $mailman.CloseSmtpConnection()
if ($success -ne $true) {
$("Connection to SMTP server not closed cleanly.")
}
$("Mail Sent!")
# Examine which email addresses were accepted by the SMTP server during the SMTP conversation.
# (i.e. during the SendEmail)
$acceptedAddrs = $mailman.GetSentToEmailAddrs()
$numAddrs = $acceptedAddrs.Count
$i = 0
while ($i -lt $numAddrs) {
$("Accepted recipient " + $i + ": " + $acceptedAddrs.GetString($i))
$i = $i + 1
}