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