Sample code for 30+ languages & platforms
AutoIt Requires Chilkat v11.0.0+

Forward by Attaching the Existing Email to a New Email

See more Email Object Examples

Demonstrates how to forward an email by attaching the email to a new email.

This example reads an email from an IMAP server, attaches the email to a new email, and sends the new email.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

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

;  Read the 1st (most recent) email in an Inbox.
$oImap = ObjCreate("Chilkat.Imap")

;  Connect to an IMAP server.
$oImap.Ssl = True
$oImap.Port = 993
$bSuccess = $oImap.Connect("imap.example.com")
If ($bSuccess = False) Then
    ConsoleWrite($oImap.LastErrorText & @CRLF)
    Exit
EndIf

;  Login
$bSuccess = $oImap.Login("myLogin","myPassword")
If ($bSuccess = False) Then
    ConsoleWrite($oImap.LastErrorText & @CRLF)
    Exit
EndIf

;  Select an IMAP mailbox
$bSuccess = $oImap.SelectMailbox("Inbox")
If ($bSuccess = False) Then
    ConsoleWrite($oImap.LastErrorText & @CRLF)
    Exit
EndIf

Local $iNumEmails = $oImap.NumMessages

;  Fetch the email at the last sequence number.
;  (We are assuming the Inbox has at least 1 email)

$oEmail = ObjCreate("Chilkat.Email")
$bSuccess = $oImap.FetchEmail(False,$iNumEmails,False,$oEmail)
If ($bSuccess = False) Then
    ConsoleWrite($oImap.LastErrorText & @CRLF)
    Exit
EndIf

;  Disconnect from the IMAP server.
$oImap.Disconnect()

ConsoleWrite($oEmail.Subject & @CRLF)

;  Create a new email.  The email we just read will be attached to this email.
$oEForward = ObjCreate("Chilkat.Email")

$oEForward.AddTo("Joe","joe@example.com")

$oEForward.FromAddress = "matt@somewhere.com"
$oEForward.FromName = "Matt"
$oEForward.Subject = "This is an email with another email attached."

$oEForward.SetHtmlBody "<p>Hello, this is an email I'm forwarding to you.  See the attached email.</p>"

;  Attach the email.
$oEForward.AttachEmail($oEmail)

;  We could save the .eml, then double-click on it to view in our mail program, such as Outlook or Thunderbird..
$oEForward.SaveEml("qa_output/forward.eml")

;  We could send (forward) the email..
$oMailman = ObjCreate("Chilkat.MailMan")

$oMailman.SmtpHost = "smtp.example.com"
$oMailman.SmtpUsername = "myLogin"
$oMailman.SmtpPassword = "myPassword"
$oMailman.SmtpPort = 587
$oMailman.StartTLS = True

$bSuccess = $oMailman.SendEmail($oEForward)
If ($bSuccess = False) Then
    ConsoleWrite($oMailman.LastErrorText & @CRLF)
    Exit
EndIf

$bSuccess = $oMailman.CloseSmtpConnection()
If ($bSuccess <> True) Then
    ConsoleWrite("Connection to SMTP server not closed cleanly." & @CRLF)
EndIf

ConsoleWrite("Mail Sent!" & @CRLF)