Sample code for 30+ languages & platforms
Visual FoxPro

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 Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loMailman
LOCAL loEmail
LOCAL loSbMime
LOCAL lcReplyToAddrs

lnSuccess = 0

* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loMailman = CreateObject('Chilkat.MailMan')

loMailman.SmtpHost = "smtp.my_mail_server.com"
loMailman.SmtpUsername = "myUsername"
loMailman.SmtpPassword = "myPassword"
loMailman.SmtpPort = 465
loMailman.SmtpSsl = 1

* Create a new email object
loEmail = CreateObject('Chilkat.Email')

loEmail.Subject = "This is a test"
loEmail.Body = "This is a test"
loEmail.From = "Joe <joe@example.com>"
lnSuccess = loEmail.AddTo("Mary","mary@example2.com")

* Specify a single reply-to address, which will get replace with a list of addresses..
loEmail.ReplyTo = "placeholder@example.com"

* Get the email as MIME.
loSbMime = CreateObject('Chilkat.StringBuilder')
loMailman.RenderToMimeSb(loEmail,loSbMime)

* Update the Reply-To MIME header with a list of email addresses.
lcReplyToAddrs = "joe@example.com, mike@example.com"
loSbMime.ReplaceAllBetween("Reply-To: ",CHR(13) + CHR(10),lcReplyToAddrs,0)

* Examine the MIME to be sent:
? loSbMime.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...
lnSuccess = loMailman.SendMime("joe@example.com","mary@example2.com",loSbMime.GetAsString())
IF (lnSuccess = 0) THEN
    ? loMailman.LastErrorText
    RELEASE loMailman
    RELEASE loEmail
    RELEASE loSbMime
    CANCEL
ENDIF

lnSuccess = loMailman.CloseSmtpConnection()
IF (lnSuccess = 0) THEN
    ? "Connection to SMTP server not closed cleanly."
ENDIF

? "Mail Sent!"

RELEASE loMailman
RELEASE loEmail
RELEASE loSbMime