Sample code for 30+ languages & platforms
AutoIt

Forward an Email using CreateForward

See more Email Object Examples

Reads an email from an IMAP server, creates a forward version of the email using the CreateForward method, and sends the email to another recipient.

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)

$oEForward = ObjCreate("Chilkat.Email")
$bSuccess = $oEmail.ToForward($oEForward)
If ($bSuccess = False) Then
    ConsoleWrite($oEmail.LastErrorText & @CRLF)
    Exit
EndIf

; The eForward email has no To or CC recipients yet.
; Add one or more..
$oEForward.AddTo("Joe","joe@example.com")

; We also need to specify the From name/address.
$oEForward.FromAddress = "matt@someMailServer.com"
$oEForward.FromName = "Matt"

; If we wish to add text at the start of the email body:
$oSbHtmlBody = ObjCreate("Chilkat.StringBuilder")
If ($oEForward.HasHtmlBody() = True) Then
    $oSbHtmlBody.Append($oEForward.GetHtmlBody())
    $oSbHtmlBody.Prepend("<p>Hello, this is an email I'm forwarding to you...</p>")
    $oEForward.SetHtmlBody $oSbHtmlBody.GetAsString()
EndIf

$oSbPtBody = ObjCreate("Chilkat.StringBuilder")
If ($oEForward.HasPlainTextBody() = True) Then
    $oSbPtBody.Append($oEForward.GetPlainTextBody())
    $oSbPtBody.Prepend("Hello, this is an email I'm forwarding to you..." & @CRLF & @CRLF)
    $oEForward.SetTextBody $oSbPtBody.GetAsString(),"text/plain"
EndIf

; 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)