DataFlex
DataFlex
Example to Add Several BCC Email Recipients
See more Email Object Examples
Demonstrates how to call AddBCC once per email recipient.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Variant vEmail
Handle hoEmail
Handle hoMailman
String sTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatEmail)) To hoEmail
If (Not(IsComObjectCreated(hoEmail))) Begin
Send CreateComObject of hoEmail
End
Set ComSubject Of hoEmail To "Test email subject"
Set ComBody Of hoEmail To "Test email body"
Set ComFrom Of hoEmail To "Test <joe@example.com>"
// Add a primary TO recipient
Get ComAddTo Of hoEmail "Elizabeth" "elizabeth@example.com" To iSuccess
// Add a CC recipient.
Get ComAddCC Of hoEmail "Jerry" "jerry@example.com" To iSuccess
// Add 2 BCC recipients.
Get ComAddBcc Of hoEmail "Mira" "mira@example.com" To iSuccess
Get ComAddBcc Of hoEmail "Alexander" "alex@example.com" To iSuccess
// BCC recipients will not be present in the MIME of the email that is sent.
// However, the BCC recipients are included in the recipients provided to the SMTP server
// during the SMTP protocol conversation. This will be shown below.
// First, let's look at the MIME.
Get ComGetMime Of hoEmail To sTemp1
Showln sTemp1
// MIME-Version: 1.0
// Date: Sat, 30 Oct 2021 07:58:32 -0500
// Message-ID: <183D5F51163BE4374B494D2ED067DE2783CC761B@SLICE>
// Content-Type: text/plain; charset=us-ascii; format=flowed
// Content-Transfer-Encoding: 7bit
// X-Priority: 3 (Normal)
// Subject: Test email subject
// From: Test <joe@example.com>
// To: Elizabeth <elizabeth@example.com>
// Cc: Jerry <jerry@example.com>
//
// Test email body
// Notice that the BCC recipients do not appear in the MIME. But don't worry, they are still present within the email object.
// The difference between CC and BCC recipients is that CC recipients appear in the MIME. Thus, the recipient of the email
// can see the CC recipients, but cannot see and is unaware of the BCC recipients.
// ----------------------------------------------------------------------------------------------
// Let's send the above email and examine the SMTP session log to show that the BCC recipients also receive the email.
Get Create (RefClass(cComChilkatMailMan)) To hoMailman
If (Not(IsComObjectCreated(hoMailman))) Begin
Send CreateComObject of hoMailman
End
Set ComSmtpHost Of hoMailman To "smtp.example.com"
Set ComSmtpUsername Of hoMailman To "myUsername"
Set ComSmtpPassword Of hoMailman To "myPassword"
Set ComSmtpSsl Of hoMailman To True
Set ComSmtpPort Of hoMailman To 465
Get pvComObject of hoEmail to vEmail
Get ComSendEmail Of hoMailman vEmail To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoMailman To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComCloseSmtpConnection Of hoMailman To iSuccess
If (iSuccess <> True) Begin
Showln "Connection to SMTP server not closed cleanly."
End
Showln "Mail Sent!"
// Examine the SMTP session log.
Get ComSmtpSessionLog Of hoMailman To sTemp1
Showln sTemp1
// Here you can see the session log and the BCC email addresses included in the "RCPT TO" commands.
// 220 smtp.example.com ESMTP Example SMTP Service
// EHLO SLICE<CRLF>
// 250-smtp.example.com
// 250-8BITMIME
// 250-AUTH PLAIN LOGIN
// 250 Ok
// AUTH LOGIN<CRLF>
// 334 VXNlcm5hbWU6
// ***<CRLF>
// 334 UGFzc3dvcmQ6
// {PasswordOrCredentials}
// 235 Authentication successful.
// MAIL FROM:<joe@example.com><CRLF>
// 250 Ok
// RCPT TO:<elizabeth@example.com><CRLF>
// 250 Ok
// RCPT TO:<jerry@example.com><CRLF>
// 250 Ok
// RCPT TO:<mira@example.com><CRLF>
// 250 Ok
// RCPT TO:<alex@example.com><CRLF>
// 250 Ok
// DATA<CRLF>
// 354 End data with <CR><LF>.<CR><LF>
// {388 bytes}
// <CRLF>.<CRLF>
// 250 Ok
// QUIT<CRLF>
// 221 Bye
End_Procedure