DataFlex
DataFlex
Send Email with Multiple Reply-To Addresses
See more SMTP Examples
Send email with multiple repy-to addresses.Note: Some mail servers will remove the extra email addresses from the Reply-To header. Even if you provide multiple reply-to addresses, the email may arrive with only the 1st.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoMailman
Variant vEmail
Handle hoEmail
Variant vSbMime
Handle hoSbMime
String sReplyToAddrs
String sTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatMailMan)) To hoMailman
If (Not(IsComObjectCreated(hoMailman))) Begin
Send CreateComObject of hoMailman
End
Set ComSmtpHost Of hoMailman To "smtp.my_mail_server.com"
Set ComSmtpUsername Of hoMailman To "myUsername"
Set ComSmtpPassword Of hoMailman To "myPassword"
Set ComSmtpPort Of hoMailman To 465
Set ComSmtpSsl Of hoMailman To True
// Create a new email object
Get Create (RefClass(cComChilkatEmail)) To hoEmail
If (Not(IsComObjectCreated(hoEmail))) Begin
Send CreateComObject of hoEmail
End
Set ComSubject Of hoEmail To "This is a test"
Set ComBody Of hoEmail To "This is a test"
Set ComFrom Of hoEmail To "Joe <joe@example.com>"
Get ComAddTo Of hoEmail "Mary" "mary@example2.com" To iSuccess
// Specify a single reply-to address, which will get replace with a list of addresses..
Set ComReplyTo Of hoEmail To "placeholder@example.com"
// Get the email as MIME.
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbMime
If (Not(IsComObjectCreated(hoSbMime))) Begin
Send CreateComObject of hoSbMime
End
Get pvComObject of hoEmail to vEmail
Get pvComObject of hoSbMime to vSbMime
Get ComRenderToMimeSb Of hoMailman vEmail vSbMime To iSuccess
// Update the Reply-To MIME header with a list of email addresses.
Move "joe@example.com, mike@example.com" To sReplyToAddrs
Get ComReplaceAllBetween Of hoSbMime "Reply-To: " (character(13)) + (character(10)) sReplyToAddrs False To iSuccess
// Examine the MIME to be sent:
Get ComGetAsString Of hoSbMime To sTemp1
Showln sTemp1
// Here's the MIME:
// MIME-Version: 1.0
// Date: Tue, 03 Sep 2024 08:18:12 -0500
// Message-ID: <D892B0E563A7A13B1F499530DE21529714EA479A@SLICE>
// Content-Type: text/plain; charset=us-ascii; format=flowed
// Content-Transfer-Encoding: 7bit
// X-Priority: 3 (Normal)
// Subject: This is a test
// From: Joe <joe@example.com>
// To: Mary <mary@example2.com>
// Reply-To: joe@example.com, mike@example.com
//
// This is a test
// ---------
// Send the MIME...
Get ComGetAsString Of hoSbMime To sTemp1
Get ComSendMime Of hoMailman "joe@example.com" "mary@example2.com" sTemp1 To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoMailman To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComCloseSmtpConnection Of hoMailman To iSuccess
If (iSuccess = False) Begin
Showln "Connection to SMTP server not closed cleanly."
End
Showln "Mail Sent!"
End_Procedure