PureBasic
PureBasic
SMTP Inspection
See more SMTP Examples
Examine an SMTP session to view all communications sent to the SMTP server.Chilkat PureBasic Downloads
IncludeFile "CkEmail.pb"
IncludeFile "CkMailMan.pb"
Procedure ChilkatExample()
success.i = 0
mailman.i = CkMailMan::ckCreate()
If mailman.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkMailMan::setCkSmtpHost(mailman, "smtp.example.com")
CkMailMan::setCkSmtpUsername(mailman, "myUsername")
CkMailMan::setCkSmtpPassword(mailman, "myPassword")
CkMailMan::setCkSmtpPort(mailman, 465)
CkMailMan::setCkStartTLS(mailman, 1)
email.i = CkEmail::ckCreate()
If email.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkEmail::setCkSubject(email, "This is a test")
CkEmail::setCkBody(email, "This is a test")
CkEmail::setCkFrom(email, "Alex <alex@example.com>")
CkEmail::ckAddTo(email,"Christoph","christoph@example2.com")
CkEmail::ckAddBcc(email,"Victor","victor@example3.com")
; Generate the MIME that is sent when SendEmail is called
mimeStr.s = CkMailMan::ckRenderToMime(mailman,email)
Debug mimeStr
success = CkMailMan::ckSendEmail(mailman,email)
If success = 0
Debug CkMailMan::ckLastErrorText(mailman)
CkMailMan::ckDispose(mailman)
CkEmail::ckDispose(email)
ProcedureReturn
EndIf
success = CkMailMan::ckCloseSmtpConnection(mailman)
If success <> 1
Debug "Connection to SMTP server not closed cleanly."
EndIf
; Examine the SMTP session log.
Debug "----"
Debug "Smtp Session Log:"
Debug CkMailMan::ckSmtpSessionLog(mailman)
; ---------------------------------------------------
; Sample output:
; ---------------------------------------------------
; MIME-Version: 1.0
; Date: Fri, 06 Mar 2026 16:21:00 -0600
; Message-ID: <A5DC25990C93EC2676F4FBB2BB3BFA9EB34FF9D3@CHILKAT25>
; Content-Type: text/plain; charset=us-ascii; format=flowed
; Content-Transfer-Encoding: 7bit
; X-Priority: 3 (Normal)
; Subject: This is a test
; From: Alex <alex@example.com>
; To: Christoph <christoph@example2.com>
; Bcc: Victor <victor@example3.com>
;
; This is a test
; ----
; Smtp Session Log:
; 220 smtp.example.com ESMTP Amazon WorkMail SMTP Service
; EHLO MYCOMPUTER<CRLF>
; 250-smtp.example.com
; 250-8BITMIME
; 250-AUTH PLAIN LOGIN
; 250 Ok
; AUTH LOGIN<CRLF>
; 334 VXNlcm5hbWU6
; YWRtaW5AY2hpbGthdHNvZnQuY29t<CRLF>
; 334 UGFzc3dvcmQ6
; {PasswordOrCredentials}
; 235 Authentication successful.
; MAIL FROM:<alex@example.com><CRLF>
; 250 Ok
; RCPT TO:<christoph@example2.com><CRLF>
; 250 Ok
; RCPT TO:<victor@example3.com><CRLF>
; 250 Ok
; DATA<CRLF>
; 354 End data with <CR><LF>.<CR><LF>
; {388 bytes} <--- The MIME source of the email (examined via RenderToMime) was sent here.
; <CRLF>.<CRLF>
; 250 Ok
; QUIT<CRLF>
; 221 Bye
CkMailMan::ckDispose(mailman)
CkEmail::ckDispose(email)
ProcedureReturn
EndProcedure