Chilkat v9.3.0 is in the process of being released this week. The release notes (below) detail the changes, fixes, new features, etc. regarding the new version.
- (Crypt2, MIME, MailMan) Now supports the ability to create CAdES-BES and CAdES-EPES digital signatures. See CAdES for more information.
- (IMAP) Added the ability to download emails without attachments, and to download attachments separately. See Download email without attachments and downloading attachments separately for more information.
- (MACOSX, IOS) Eliminated the SIGPIPE exception that can occur when a socket write is attempted after the previously connected peer disconnects.
- (Email) No longer includes the “This is a multi-part message in MIME format.” line in multipart/mixed messages. Note: The presence of this line is very common and transparent (i.e. it is not visibly seen when viewing an email in an email client such as Outlook or Thunderbird).
- (IMAP) The “ckx-imap-internaldate” header field is now added to emails downloaded from IMAP servers. This allows for subsequent calls to AppendMail to restore the same internal date when uploading the email to a new IMAP server or to another mailbox on the same IMAP server.
- (IMAP) Exception in CRAM-MD5 authentication fixed.
- (Email) Modified the automatic generation of the Message-ID header field so that it never tries to fetch the hostname via DNS. The simple instantiation of an email object should never do anything that would implicitly require network communications.
- (Compression) PPMD is not yet available in 64-bit non-Windows apps. Any attempt to use it in CkCompression (CkoCompression) will result in a false return status indicating failure. Use Deflate, Bzip2, or Lzo instead.
- (Ftp2, HTTP, Socket) Asynchronous functionality is now enabled for all non-Windows operating systems. See Cocoa Asynchronous Methods and Event Callbacks for more information.
- (Self-Extracting EXE) The self-extracing EXE’s now correctly maintain last-modification dates/times.
- (Charset) Fixed Charset.HtmlEntityDecode to handle non-ANSI HTML.
- (C++ on Linux, MacOSX, IOS, Android) May need to link with the system libraries “-lresolv” and “-lpthread”.
- DKIM and SSH Tunneling now supported across all operating systems/programming languages, with the exception that DKIM is not yet available on Android.
- (Atom on ActiveX) Fixed ChilkatAtom.GetEntry method.
- (XML) Added Xml.GetChildWithAttr method.
- (FTP2) Added HTTP proxy support to FTP2 (forces Passive mode if an HTTP proxy is used).
- (Bounce) Added BounceType 15 (for abuse/fraud feedback reports).
- (Zip) Fixed Zip date/time issues for years after 2037.
- (XML) Fixed memory leaks in RemoveChildByIndex and RemoveChildWithContent methods.
- (Upload) Fixed the PercentUploaded property — a divide-by-zero exception occurred if first access happened while the total is still 0.
- (SSH / SFTP) Added the ForceCipher property to allow the encryption algorithm to be explicitly chosen.
- (MacOSX C++) Mac C++ libs have changed to these new names:
The dynamic libs now use “@executable_path”, so the .dylib (if used) can be placed in the same directory as your EXE.
- (CSV) Csv.LoadFromString always returned false even when successful. This is now fixed.
- (RSA) Somewhat rare OAEP padding related decrypt issue fixed. (The problem was on the decrypt side, not on the encrypt side.)
- (XML) Added the CopyRef method.
- (Crypt2) Added new methods for signature date/times: GetSignatureSigningTime and HasSignatureSigningTime.
- (RSA) Fixed PSS padding issue for signatures using PSS padding.
- (MailMan/C++) CkMailMan::SetProgressCallback is deprecated. Use put_EventCallbackObject instead.
- (Zip/C++) CkZip methods with “CkZipProgress *” as final argument are deprecated. Use put_EventCallbackObject in combination with the methods that do NOT include the “CkZipProgress *” argument.
- (FTP2) Internally, the “EPRT” command (instead of “PORT”) is automatically used if the TCP connection is IPv6.
- (XML ) The GetXml method now includes the XML declaration when getting the XML of the document root, otherwise it does not. The extra blank line between the XML declaration and the root node is now removed.
- (HTTP) Added the DownloadHash method, which allows a file to be downloaded such that the downloaded bytes are discarded and a hash of the bytes is returned.
- (PHP) This error is fixed:undefined symbol: zend_error_noreturn in Unknown on line 0This error does not occur in PHP 5.3.8 or later. The error is a bug in PHP and is described here:
- (MacOSX) Objective-C libs compiled with -fobjc-gc so that both GC and retain/release logic is present.
- (HTML-to-Text) Added the SuppressLinks property to suppress the inclusion of URLs found in links. To maintain backward compatibility, false/0 is default property value.
- (HTML-to-Text) Added the DecodeHtmlEntities property so that HTML entities can be automatically decoded. To maintain backward compatibility, false/0 is default property value.
- (Compression) The Charset property had an undefined default value. It now defaults to “utf-8”.
- (Email) The AddRelateData and AddRelatedData2 methods were missing for Java, Perl, Python, Ruby, and PHP. These methods have been added.
- (HTTP) DownloadAppend and ResumeDownload methods fixed for Gzipped HTTP responses.
- (HTTP) The PostJson method was added to make JSON POST’s easy.
- (MailMan) Added the AutoSmtpRset property. The default value is True, making it backward compatible so that the behavior is unchanged w/ previous versions. When True, the “RSET” SMTP command is sent at the beginning of each email on an already-open connection (meaning it is not the 1st email sent on a connection). This is done to ensure that the state of the connection is valid, clean, and ready for a new email. A case was found where one SMTP server delayed by approx. 5 seconds in responding to the RSET command. The AutoSmtpRset property provides a way to control whether the RSET command is automatically sent.
- (SshTunnel) Added the ClearTunnelErrors method (to clear TunnelErrors read-only property).
- (Zip) Added the SkippedForUnzip event , which is called if a file is not unzipped because it is not newer (for UnzipNewer method), or if a file is not unzipped because it would overwrite an existing file (when OverwriteExisting = false).
- (HTTP) Added the HttpResponse.SaveBodyBinary and SaveBodyText methods. Makes it possible to save large responses directly to a file.
- (MIME) Added the UseXPkcs7 boolean property. The default value is True to make it backward compatible. This controls whether “x-pkcs7-signature” or “pkcs7-signature” is used for the Content-Type for PKCS7 signatures. It also controls whether “x-pkcs7-mime” or “pkcs7-mime” is used for the Content-Type in PKCS7 encryption. If UseXPkcs7 is True, then “x-pkcs-*” is used.
- (ActiveX) Versioning for all ActiveX DLL’s will now match the overall version (v9.3.0).
If a new version of an individual DLL is released prior to the release of the next full-set version, it will be a sub-version, such as v126.96.36.199
- (ActiveX Email) The ChilkatMail_v8.dll ActiveX changed name to ChilkatMail2.dll The “2” reflects that the ActiveX object names, which have not changed, are ChilkatMailMan2, ChilkatEmail2, ChilkatEmailBundle2. (This makes it consistent with other ActiveX DLLs/objects such as ChilkatZip2.dll, ChilkatCrypt2.dll, ChilkatFtp2.dll, etc.)