In previous section, I introduced how to parse non-delivery report (NDR) in Delphi. In this section, I will introduce how to create folders and manage folders with IMAP4/Exchange Web Service (EWS)/WebDAV protocol in Delphi.
Sections:
Because IMAP4/Exchange Web Service (EWS)/WebDAV protocol supports folder access, so we can retrieve email from other mailbox rather than default “INBOX”, I have introduced it in other sections. In this section, I will introduce how to use EAGetMail to create folder and delete folder with IMAP4/Exchange Web Service/WebDAV protocol. Notice: POP3 protocol doesn’t support this feature.
The following example codes demonstrate how to create folder and delete folder.
Note
To get the full sample projects, please refer to Samples section.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, EAGetMailObjLib_TLB; // Add EAGetMail unit
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
MailServerPop3 = 0;
MailServerImap4 = 1;
MailServerEWS = 2;
MailServerDAV = 3;
MailServerMsGraph = 4;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
oClient: TMailClient;
oServer: TMailServer;
folders: IFolderCollection;
i: integer;
fd, folder: IImap4Folder;
begin
try
// To create folder with Exchange Web Service, please change
// MailServerImap4 to MailServerEWS to MailServer.Protocol
// To create folder email with Exchange WebDAV, please change
// MailServerImap4 to MailServerDAV to MailServer.Protocol
// Exchange Server supports POP3/IMAP4 protocol as well, but in Exchange 2007
// or later version, POP3/IMAP4 service is disabled by default. If you don't want to use POP3/IMAP4
// to download email from Exchange Server, you can use Exchange Web Service(Exchange 2007/2010 or
// later version) or WebDAV(Exchange 2000/2003) protocol.
// For Exchange Web Service/WebDAV, please ignore
// Port property. But for Exchange Web Service, please set SSLConnection to True
oServer := TMailServer.Create(Application);
oServer.Server := 'imap4.emailarchitect.net';
oServer.User := 'test@emailarchitect.net';
oServer.Password := 'testpassword';
oServer.Protocol := MailServerImap4;
// Enable SSL/TLS Connection, most modern email server require SSL/TLS connection by default.
oServer.SSLConnection := true;
// Set 993 SSL IMAP4 port
oServer.Port := 993;
// If your IMAP doesn't deploy SSL connection
// Please use
// oServer.SSLConnection := false;
// oServer.Port := 143;
oClient := TMailClient.Create(Application);
oClient.LicenseCode := 'TryIt';
oClient.Connect1(oServer.DefaultInterface);
ShowMessage('Connected!');
folder := oClient.CreateFolder(nil, 'Test Folder');
folders := oClient.GetFolderList();
for i := 0 to folders.Count - 1 do
begin
fd := folders.Item[i];
ShowMessage('Folder: ' + fd.FullPath);
end;
oClient.DeleteFolder(folder);
oClient.Logout;
except
on ep:Exception do
ShowMessage('Error: ' + ep.Message);
end;
end;
end.
To retrieve emails from a specified folder, please use SelectFolder method; To move email from a folder to another folder, please use Move method; To copy email from a folder to another folder, please use Copy method; To upload an email file from local disk to server folder, please use Append method.
Note
Please refer to ImapFull project for more detail.
Since Exchange 2007 or later version (2010/203), IMAP4 protocol does not expose public folders to mail client. If you want to access public folders on MS Exchange 2007/2010/2013/2016/2019 or later version, please use MailClient.GetEWSPublicFolders method.
Next Section
Total sample projects in EAGetMail Mail Component installation package.
Appendix
Comments
If you have any comments or questions about above example codes, please click here to add your comments.