Sample code for 30+ languages & platforms
Tcl

SMTP Send Raw Command

Demonstrates how to send a raw command to the SMTP server after the connecting and authenticating.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

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

set mailman [new_CkMailMan]

CkMailMan_put_SmtpHost $mailman "smtp.mail.us-west-2.awsapps.com"
CkMailMan_put_SmtpSsl $mailman 1
CkMailMan_put_SmtpPort $mailman 465

set success [CkMailMan_SmtpConnect $mailman]
if {$success == 0} then {
    puts [CkMailMan_lastErrorText $mailman]
    delete_CkMailMan $mailman
    exit
}

CkMailMan_put_SmtpUsername $mailman "john@example.com"
CkMailMan_put_SmtpPassword $mailman "the_password"

set success [CkMailMan_SmtpAuthenticate $mailman]
if {$success == 0} then {
    puts [CkMailMan_lastErrorText $mailman]
    delete_CkMailMan $mailman
    exit
}

puts "Authenticated!"

# Send the "EHLO" command again to get the multi-line response that includes the SMTP capabilities.
# The capabilities are the lines in the response that begin with "250-".
set responseStr [CkMailMan_smtpSendRawCommand $mailman "EHLO client.example.com" "utf-8" 0]
if {[CkMailMan_get_LastMethodSuccess $mailman] == 0} then {
    puts [CkMailMan_lastErrorText $mailman]
    delete_CkMailMan $mailman
    exit
}

puts "$responseStr"

# A sample response:

# 250-smtp.us-west-2.mail.awsapps.com
# 250-8BITMIME
# 250-AUTH PLAIN LOGIN
# 250 Ok

delete_CkMailMan $mailman