Build 4086: Better .MSG support in Rebex Mail, faster decompression in Rebex ZIP, bugfixes in SFTP & SSH Shell

Better Oulook .MSG support in Rebex Mail

Outlook .MSG support introduced in the previous version seems to be working fine overall, but our customers found one compatilibity issue we missed: If you drag&drop a .MSG file created by Rebex Mail to Outlook, everything looks fine at first, but the message disappears in a few minutes. To our big surprise, we discovered this is caused by uncompressed RTF data present in .MSG files written by Rebex Mail. Adding compression solved the issue.

Enhanced scripting support in VirtualTerminal class (Rebex SSH Shell and Rebex Telnet)

Lot of our users attempt to use the Shell class to reproduce Expect-like functionality. The problem with this is that the class was not meant to be used this way and its API is designed to run simple shell commands, not complex scripts. For that VirtualTerminal class is much better suited and should be preferred whenever possible. Check out the following Q&A forum post for inspiration: How to use VirtualTerminal.Expect method.

Bugfixes in SSH core

Unforunately, a bugfix for a race condition in our SSH core we released three weeks ago turned out to contain two new bugs leading to bogus timeout exceptions. All users currently using build 4060 of Rebex SFTP or Rebex SSH Shell are strongly advised to upgrade to build 4087 which solves this issue. We are sorry for any inconvenience this might have caused!

Complete list of changes:

  • FTP: Missing end-of-data blocks in are ignored in MODE Z transfers (some FTP servers failed to send them).
  • FTP: GetList, GetRawList and GetNameList methods with empty arguments now behave like their parameter-less variants.

  • SSH Core: Added workaround for old SSH servers that miscalulate HMAC-SHA1 keys.

  • SSH Core: Added SshParameters.AuthenticationMethods to make it possible to only enable desired authentication methods.
  • SSH Core: SendEof method added to SshChannel to make it possible to achieve plink-like functionality.
  • SSH Core: Fixed a bug in SSH channel window size adjustment code which could cause a timeout on servers which send oversized packets.
  • SSH Core: Fixed a bug that prevented SSH key renegotiation requests from being processed, resulting in a timeout.
  • SSH Core: Abort flag checking messages removed from Debug log.

  • MSG: RTF data written into .MSG messages is compressed using LZFu. This enhances Outlook compatibility (drag&dropped messages no longer disappear).

  • MSG: Added MimeOptions.LoadMsgProperties option to make it possible to load some .MSG-only properties not accessible otherwise.

  • SMTP/SSL: Security (SmtpSecurity) and Parameters (TlsParameters) properties added to SmtpConfiguration.

  • Terminal: HistoryMaxLength property added to TerminalControl.

  • Terminal: Added regular-expression-based VirtualTerminal.Expect method.
  • Terminal: Prompt doesn't have to be set when a question prompt is specified in a ReadLine/ReadAll call.
  • Terminal: Shell class in ShellMode.Prompt works with *BSD now.
  • Terminal: VirtualTerminal.Expect behaves the same way no matter whether expected string comes at an end of a block of data or not and always stops at the first occurance.
  • Terminal: VirtualTerminal.DataReceived property added to make it possible to easily retrieve data received by Expect and Process methods.

  • ZIP: Faster decompression!

  • ZIP: Exceptions thrown by ZipArchive.ProblemDetected event no longer cause unhandled exception and terminate the application.