Xbase++
Xbase++
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 Xbase++ Downloads
LOCAL nSuccess
LOCAL oMailman
LOCAL oEmail
LOCAL oSbMime
LOCAL cReplyToAddrs
nSuccess := 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
oMailman := CreateObject("Chilkat.MailMan")
oMailman:SmtpHost := "smtp.my_mail_server.com"
oMailman:SmtpUsername := "myUsername"
oMailman:SmtpPassword := "myPassword"
oMailman:SmtpPort := 465
oMailman:SmtpSsl := 1
// Create a new email object
oEmail := CreateObject("Chilkat.Email")
oEmail:Subject := "This is a test"
oEmail:Body := "This is a test"
oEmail:From := "Joe <joe@example.com>"
nSuccess := oEmail:AddTo("Mary", "mary@example2.com")
// Specify a single reply-to address, which will get replace with a list of addresses..
oEmail:ReplyTo := "placeholder@example.com"
// Get the email as MIME.
oSbMime := CreateObject("Chilkat.StringBuilder")
oMailman:RenderToMimeSb(oEmail, oSbMime)
// Update the Reply-To MIME header with a list of email addresses.
cReplyToAddrs := "joe@example.com, mike@example.com"
oSbMime:ReplaceAllBetween("Reply-To: ", Chr(13) + Chr(10), cReplyToAddrs, 0)
// Examine the MIME to be sent:
? oSbMime:GetAsString()
// 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...
nSuccess := oMailman:SendMime("joe@example.com", "mary@example2.com", oSbMime:GetAsString())
IF (nSuccess == 0)
? oMailman:LastErrorText
oMailman:destroy()
oEmail:destroy()
oSbMime:destroy()
RETURN
ENDIF
nSuccess := oMailman:CloseSmtpConnection()
IF (nSuccess == 0)
? "Connection to SMTP server not closed cleanly."
ENDIF
? "Mail Sent!"
oMailman:destroy()
oEmail:destroy()
oSbMime:destroy()