Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) Forward an Email using CreateForwardReads an email from an IMAP server, creates a forward version of the email using the CreateForward method, and sends the email to another recipient.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, MailMan, StringBuilder, Imap, Email; ... procedure TForm1.Button1Click(Sender: TObject); var imap: HCkImap; success: Boolean; numEmails: Integer; email: HCkEmail; eForward: HCkEmail; sbHtmlBody: HCkStringBuilder; sbPtBody: HCkStringBuilder; mailman: HCkMailMan; begin // 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. imap := CkImap_Create(); // Connect to an IMAP server. CkImap_putSsl(imap,True); CkImap_putPort(imap,993); success := CkImap_Connect(imap,'imap.someMailServer.com'); if (success <> True) then begin Memo1.Lines.Add(CkImap__lastErrorText(imap)); Exit; end; // Login success := CkImap_Login(imap,'myLogin','myPassword'); if (success <> True) then begin Memo1.Lines.Add(CkImap__lastErrorText(imap)); Exit; end; // Select an IMAP mailbox success := CkImap_SelectMailbox(imap,'Inbox'); if (success <> True) then begin Memo1.Lines.Add(CkImap__lastErrorText(imap)); Exit; end; numEmails := CkImap_getNumMessages(imap); // Fetch the email at the last sequence number. // (We are assuming the Inbox has at least 1 email) email := CkImap_FetchSingle(imap,numEmails,False); if (CkImap_getLastMethodSuccess(imap) = False) then begin Memo1.Lines.Add(CkImap__lastErrorText(imap)); Exit; end; // Disconnect from the IMAP server. CkImap_Disconnect(imap); Memo1.Lines.Add(CkEmail__subject(email)); eForward := CkEmail_CreateForward(email); // The eForward email has no To or CC recipients yet. // Add one or more.. CkEmail_AddTo(eForward,'Chilkat Support','support@chilkatsoft.com'); // We also need to specify the From name/address. CkEmail_putFromAddress(eForward,'matt@someMailServer.com'); CkEmail_putFromName(eForward,'Matt'); // If we wish to add text at the start of the email body: sbHtmlBody := CkStringBuilder_Create(); if (CkEmail_HasHtmlBody(eForward) = True) then begin CkStringBuilder_Append(sbHtmlBody,CkEmail__getHtmlBody(eForward)); CkStringBuilder_Prepend(sbHtmlBody,'<p>Hello, this is an email I''m forwarding to you...</p>'); CkEmail_SetHtmlBody(eForward,CkStringBuilder__getAsString(sbHtmlBody)); end; sbPtBody := CkStringBuilder_Create(); if (CkEmail_HasPlainTextBody(eForward) = True) then begin CkStringBuilder_Append(sbPtBody,CkEmail__getPlainTextBody(eForward)); CkStringBuilder_Prepend(sbPtBody,'Hello, this is an email I''m forwarding to you...' + #13#10 + #13#10); CkEmail_SetTextBody(eForward,CkStringBuilder__getAsString(sbPtBody),'text/plain'); end; // We could save the .eml, then double-click on it to view in our mail program, such as Outlook or Thunderbird.. CkEmail_SaveEml(eForward,'qa_output/forward.eml'); // We could send (forward) the email.. mailman := CkMailMan_Create(); CkMailMan_putSmtpHost(mailman,'smtp.someMailServer.com'); CkMailMan_putSmtpUsername(mailman,'myLogin'); CkMailMan_putSmtpPassword(mailman,'myPassword'); CkMailMan_putSmtpPort(mailman,587); CkMailMan_putStartTLS(mailman,True); success := CkMailMan_SendEmail(mailman,eForward); if (success <> True) then begin Memo1.Lines.Add(CkMailMan__lastErrorText(mailman)); Exit; end; success := CkMailMan_CloseSmtpConnection(mailman); if (success <> True) then begin Memo1.Lines.Add('Connection to SMTP server not closed cleanly.'); end; Memo1.Lines.Add('Mail Sent!'); CkEmail_Dispose(eForward); CkEmail_Dispose(email); CkImap_Dispose(imap); CkStringBuilder_Dispose(sbHtmlBody); CkStringBuilder_Dispose(sbPtBody); CkMailMan_Dispose(mailman); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.