In the new version 7.0 we have totally replaced our server functionality and improved all existing client and server components. New properties and methods have been added. Some existing properties, methods and events have been renamed or deleted in order to achieve better usability and clear Clever Internet Suite structure.
Here you can find a list of new features and detailed description of changes in components interfaces.
- MailMessage component – parsing of email address parts was improved. New class, TclEmailAddress, was added.
- SSL/TLS encryption – allowing empty certificates was implemented. Starting from now, you can specify the certificate list to be sent to the server while authenticating the client.
- Client and server components – local binding support. If you run your client/server on multihomed PC, you can specify the local host IP to bind. This feature is critical for both SMTP server and SMTP relay components.
- CertificateStore component – we have totally replaced and improved the certificate support. Starting from now, you can work with certificate keys: generate, install, uninstall, associate with a certificate. The ability to create/sign certificate requests was added as well. The certificate revocation checks were implemented.
- Firewall support was implemented. Currently, all client components support the following firewall types: SOCKS4 and SOCKS5.
- SMTP client / SMTP relay: new HostName property was added. This new property allows you to specify the local host name when connecting to the server. This feature is critical for email relaying functionality.
- SMTP server / POP3 server: new HostName property was added. Starting from now you can both bind listening socket on required local IP and specify the name of local host (see both LocalBinding and HostName properties)
- All Clever Internet Suite components have their own exception classes and codes for each error.
- Both TcpServer and TcpCommandServer classes were totally replaced and improved. New versions of these components allow you to easily implement your own server components, easily extend existing server components, add new command handlers.
- TcpServer, TcpCommandServer – the ability to enumerate connected users was implemented (see both Connections and ConnectionCount properties)
- TcpServer, TcpCommandServer – new version allows you to require a client certificate when establishing SSL / TLS connection (see RequireClientCertificate property).
- TcpCommandServer – the ability to receive multiple lines was implemented (see AcceptMultipleLines method)
- SmtpServer – extensions support was implemented (see Extensions property)
- The Keep-alive feature for all TCP clients. Allows you to keep the connection between the client and server.
- The session timeout feature is implemented for TCP server components. Allows you to terminate the connection if there is no data transfers during timeout interval.
- DnsFileHandler - new zone manager class was added. This class allows you to create and modify zone files on the disk.
- TcpCommandServer - the ability to add user-defined commands was implemented:
TcpCommandList - AddCustomCommand method was added;
TcpCustomCommandInfo was added;
OnCustomCommand event was implemented.
- TcpServer - CloseConnection method was added;
starting from now the Connections property returns an instance of the TclUserConnection object.
- POP3 client – message numbers in all methods should be started from “1” (one) – in the same way as in the IMAP4 client. If your code still uses message numbers which start from “0”, please use the following global variable in your code:
POP_INDEX_INDENT := 0;
- UseSPA property was renamed to UseSasl.
- SMTP client / SMTP relay components – the inheritance model was changed, some protected methods were renamed.
- TcpServer, TcpCommandServer – a lot of changes in interface declarations.
- TcpServer, TcpCommandServer - the SendMultipleLines method was replaced and improved, the parameter list was changed.
- TcpCommandServer – the parameter list for both OnReceiveCommand and OnSendResponse events was changed; new event, OnGetCommandParams, was added.
- SmtpServer – the OnReset, OnAuthenticate events were added; the OnLoginAuthenticate, OnAuthAuthenticate events were deleted – please use the OnAuthenticate instead. This new event allows you to add new user account “on a fly” and authenticate the session; the parameter list in OnMessageReceived event was changed.
- SmtpServer – the EclSmtpServerError exception class was added.
- Pop3Server - TclPop3AuthMode enum items were renamed, see the source code for details.
- Pop3Server - TclPop3MessageList inheritance model was replaced. Currently, this class is not inherited from TCollection and allows adding any TclPop3MessageItem descendants.
- Pop3Server - the following events were deleted: OnLoginAuthenticate, OnAPopAuthenticate, OnAuthAuthenticate; new OnAuthenticate event was added instead. Parameters for the OnRetrieve event were changed. Starting from now, you will not have to bother about loading TOP lines. The Pop3Server automatically parses necessary lines and sends it to the client.
- DNSquery - TXT records support was added.
- Ftp client and FtpServer components – the data port range feature was implemented.
- FtpServer – advanced file permissions are implemented, handling of SITE command was improved.
- The MailUserAccountItem object is used for all email server components: Pop3Server, SmtpServer and Imap4Server.
- WebDAV client – the working with resource locks was improved.
- Two new Email validation components were added: EmailValidator and BounceChecker. Both these components allow you to validate recipient’s email address, mailbox availability and also handle bounce emails.
- AsyncClient – an asynchronous TCP client component. This component works in background without interfering with the main application thread.
- New CookieManager component was added. This component is used together with Http component for keeping the cookie data and managing cookies in HTTP requests and responses.
- Both DnsServer and DnsFileHandler components were added. These components implement fully functional DNS server and allow you to both manage handed DNS zones and cache non-authoritative DNS records.
- Epp client - manages objects within registries over the Internet.
- EppServer - keeps an object information and allows you to manage objects within registries over the Internet.
- Imap4Server, Imap4FileHandler - represents the IMAP4 server component and is used for managing messages and mailboxes by the IMAP4 clients.
- NntpServer, NntpFileHandler - represents the NNTP server component and is used for receiving news articles from clients.
- Rss component - is used for creating, retrieving, and editing RSS feeds.
- UdpClient, UdpServer – represents custom UDP client/server solution and allows you to implement your own UDP-based Network protocol.
- HttpMail – starting from now the HttpMail component was removed from the library. This component handled Microsoft Hotmail protocol. Since this protocol is no longer supported by Microsoft, we decided to remove this component from the Clever Internet Suite. If you want to still use the WebDAV technology, please consider migrating to the WebDAV component.