Sample code for 30+ languages & platforms
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

Xbase++
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()