*** Release Version 8.6 ***

Increased password buffer to 3072 (3K), to support XOAUTH2 protocol.
Added function seeMakeXOAuth2N()
Added functions seeEncodeBase64() and seeDecodeBase64()
Added diagnostics to log file for XOAUTH2 protocol
Added errors codes SEE_AUTH_SHORT, SEE_AUTH_BAD_BEG, and SEE_AUTH_BAD_END
Added functions seeShortToByte2() and seeByteToShort2()

*** Release Version 8.5 ***

Changed MakeMessageID() so that it extracts the last email address
Fixed problem with initializing HandleTable between calls to seeAttach.
Check for embedded spaces in passwords.
Can start multiple copies of Stunnel.
Streamlined termination process when file could not be created or opened.
Recognizes Windows-1256 parts (Arabic text).

*** Release Notes for SEE Version 8.4 ***

Added: Added Message-ID header to all outgoing email.
Added: Added diagnostics to decoding UTF-8 filenames.
Fixed: Fixed problem if SSL config string did not end with LF.
Change:Increased OAUTH2 password buffer to size 2048.
Added: Added function seeMakeXOAuth2() that creates OAUTH2 password string.

*** Release Notes for SEE Version 8.3 ***

Fixed:  Fixed problem when renaming attachments "on the fly" [oldname|newname].
Added:  Allow renaming of inline images "on the fly" [oldname|newname].
Added:  Write authentication protocol selected by user to the log file.
Added:  Added "Unexpected empty string" (SEE_EMPTY_STRING) error code.
Added:  Allow "From:" header to be split over multiple lines.
Change: Protocol XOAUTH2 must be explicitly enabled - seeIntegerParam(0, SEE_AUTHENTICATE_PROTOCOL, AUTHENTICATE_XOAUTH2).

*** Release Notes for SEE Version 8.2 ***

Added:  IMAP processing now traps "NO" and "BAD" responses during login.
Change: Removed limits on the number & size of saved subject lines that can be returned by seeGetHeader()
Change: Allows ISO & UTF subjects to be broken in mid-line.
Change: SEE_REPLACE_UNDERSCORES (EnableRFC2047) default changed to TRUE
Added:  Added support for OAUTH2 - user MUST provide access token !
Fixed:  Base64 encoded passwords now replaced with astericks in log file (default)
Change: Increased password buffer to 256 characters (supports SendGrid passwords)

*** Release Notes for SEE Version 8.1 ***

Fixed:  Fixed seeTestFileSet() problem (file critical section not initialized)
Added:  Added Windows error text written to log file when Windows returns an error
Change: Files opened for read now in shared access (FILE_SHARE_READ)
Fixed:  Fixed "CID=" string in log file
Added:  IMAP response "+OK" accepted in addition to "OK"
Fixed:  Fixed problem with UnQuote (did not handle lower case hex correctly)
Added:  Added error code SEE_INDEX_RANGE
Added:  Added function seeSetFileBuffer() -  used to pass buffer (not file) as attachment
Added:  Added BASE64_UTF8 to seeMakeSubject()
Added:  seeStartProgram() sets last error for subsequent call to seeDebug(Chan, SEE_GET_LAST_ERROR,...)
Added:  Added SEE_GET_LAST_ERROR (36) to seeDebug
Added:  Error text written to log file if Stunnel can't be started
Fixed:  Handles decoding ISO & UTF8 multi-line subjects correctly
Added:  Writes KeyCode value to log file if seeDebug(...,SEE_GET_REGISTRATION,...) is called
Change: Change SEE_REPLACE_UNDERSCORES (EnableRFC2047) default to FALSE
Added:  Added SEE_GET_KEYCODE to seeStatistics()
Change: Multi-line "Subject:" lines saved as lines (not concatenated) for retrieval by seeGetHeader()
Change: Multi-line "To:" lines saved as lines (not concatenated) for retrieval by seeGetHeader()

*** Release Notes for SEE Version 8.0 ***

Fixed:  Multiple subject lines were not always correctly combined (seeGetEmailFile).
Fixed:  Problem with SSL PLAIN authentication protocol corrected.
Added:  Added error code constant SEE_BAD_UTF8_CHAR.
Added:  Added function seeEncodeUTF8String() that encodes UTF8 strings.
Added:  Added function seeDecodeUTF8String() that decodes UTF8 strings.
Added:  Constant SEE_SHOW_PASSWORDS added that shows all passwords in log file.
Added:  Added constant SEE_GET_CUSTOMER_ID to function seeStatistics()
Added:  Customer ID written to Stunnel configuration file.
Added:  Additional connection statistics written to SEE log file.
Added:  SEE writes SSL file date stamps to SEE log file.
Change: Base64 strings passed to seeDecodeBuffer() no longer required to end with CRLF.
Change: Increased value of MaxConnectAttempts from 12 to 20.

*** Release Notes for SEE Version 7.5 ***

Fixed : Problem fixed in which two user headers can't be set.
Added : SEE_SET_RCPT_TRACE_FILE added to seeStringParam to write RCPT trace to disk
Added : Added seeSetCertAuth() to specify Certification Authority certs (for SSL)
Added : Current directory filename is written to log file 
Added : The date stamp filename is written to the log file
Added : The SEE version written to log file moved to just after log file is opened
Added : Display SSL file date stamps in log file.

*** Release Notes for SEE Version 7.4 ***

Added: seeMakeSubject() to make ISO & UTF-8 quoted subject strings.
Added  seeTestConnect() to test the connection to an email server.
Added: seeImapConnect() & seeImapConnect() updated to hide LOGIN password 
Added: Content-Type marked automatically for PDF and WAV files
Fixed: socket forced closed if cannot connect to server,
Fixed: replace non-asii chars in subject and header strings with '_' character.
Added: allow commas to be used in a filename itself (seeTestFileSet)
Added: more diagnostics to the SEE log file.

*** Release Notes for SEE Version 7.3 ***

Decodes UTF8 encoded attachment filenames.
Diagnostics written to log file if missing '<' or '>' delimiters in email addresses.
Added SEE_ALLOW_PARTIAL to seeIntegerParam which allows PARTIAL commands in IMAP.
Added SEE_GET_UIDVALIDITY to seeStatistics which returns UID Validity in IMAP.
Fixed problem with boundary buffer [64-bit only].
Added seeConfigSSL() function which adds lines to the SSL configuration file.
Added seeUnquote() function that unquotes quoted strings.
Added UTF8 quoting : seeIntegerParam(Chan, SEE_QUOTED_PRINTABLE, QUOTED_UTF8)

*** Release Notes for SEE Version 7.2 ***

Increased the maximum number of channels from 32 to 64.
Allow multiple subject lines in incoming email.
Added SEE_REPLACE_UNDERSCORES to seeIntegerParam() to disable replacement of underscores with spaces (RFC2047).
Fixed problem with GMAIL IMAP connection.
Can now decode Win1255 subjects.
seeAbort now always closes attachment files.
Fixed zone calculation for "half-zones".
Added debug info to seeGetEmailCount().
Added STUNNEL_DISABLE_LOGGING flag to seeSetProxySSL() that disables Stunnel logging.
Fixed problem with SEE_ADD_HEADER when re-opening connection.
Allow attachment filename to have a leading space.
Added seeGetHeader() function with parameters SEE_GET_SUBJECT, SEE_GET_FROM, SEE_GET_REPLT_TO, SEE_GET_TO, and SEE_GET_DATE

*** Release Notes for SEE Version 7.1 ***

Can pass full pathname for ProxyEXE and ProxyCert in seeSetProxySSL.
Buffer sizes for ProxyEXE & ProxyCert (seeSetProxySSL) increased from 64 to 256 chars.
(NOTE: can no longer pass a null string for PEM certificate)
seeRelease() kills all running copies of Stunnel started by SEE.
Password characters not written to log file (PASS ****) & AUTH transmissions
Added SEE_SET_CONNECT_ATTEMPTS that sets max connection attempts (1 to 12)
Fixed problem: ImapConnect not returning error if bad login.
SEE closes all process handles for all external program started by SEE.

*** Release Notes for SEE Version 7.0 ***

Version 7.0 includes changes so that Stunnel (used for email services requiring SSL) is automatically configured, loaded, and unloaded without any user intervention. 

Modified seeSetProxySSL(), seeSmtpConnectSSL(), seePop3ConnectSSL(), seeImapConnectSSL() to support Stunnel in automatic configure/load/unload mode.

Fixed problem decoding some "ISO-8859" subjects
Fixed problem with wrong content type when using seePop3Rd
Fixed problem with seeAttachmentParams
ParseISO removes removes iso-8859-15 encoding from incoming Subject, etc.
"To:" and "CC:" strings decoded (base64 & quoted)
Decode quoted UTF-8 subject strings
Replace underscore with blank (RFC2047) in UnQuote
Added ".png" to image types
Call seeStringParam(Chan, SEE_SET_HELO_STRING, '*') to use machine name for HELO string
Call seeStringParam(Chan, SEE_LOG_FILE, "\0") to disable logging 
Recognizes iso-2022-jp content type.

*** Release Notes for SEE Version 6.0 ***

Added functions seeSmtpConnectSSL and seePop3ConnectSSL.
Added function seeIsConnected.
Fixed: Can now have leading period in alternate text.
Added SEE_SET_LOCAL_IP (seeStringParam) to specify local IP.
Added support for CHARSET_WIN_1250.
Changed (default) MaxResponseWait from 10 secs to 25 secs.
Added SEE_SET_HELO_STRING to specify HELO string.
Fixed problem with reading POP3 from file.
Added support for ISO-8859-3 and ISO-8859-4.

*** Release Notes for SEE Version 5.2 ***

The HELO command passes the computer name rather than it's IP address.
Bug Fix: All handles closed before memory blocks are freed.
Bug Fix: Multiline "To:" header preserved in incoming email.
Bug Fix: seeSmtpTarget now always closes files.
Bug Fix: seePop3Source now always closes files.
Bug Fix: Multiple IMAP response lines now handled properly by seeCommand.
Added UTF8 character set support (CHARSET_UTF8).
Added check for "MX lookup failure" when reading incoming mail.
Added check for "Invalid MX record" when reading incoming mail.
Changed IMAP list command argument default from [~/ *] to ["" "*"] (without the brackets).
Added SEE_SET_IMAP_LIST_ARG to seeStringParam (sets IMAP list command argument)
Added seeReadQuoted function: reads a file and quotes the contents as it writes to a buffer.
Added "Buffer overflow" error code.
Added QUOTED_ISO_8859_2 to seeIntegerParam for sending ISO_8859_2 encoded emails.
Added QUOTED_ISO_8859_7 to seeIntegerParam for sending ISO_8859_7 encoded emails.
Added SEE_GUT_ATTACHMENTS to seeIntegerParam to remove contents of incoming attachments.
Added SEE_SET_FOOTER to seeStringParam to append footer to all outgoing email.
Added seeTestFileSet to verify the existance of files.
Added seeSleep function (for languages not having a native Sleep call).
Added seeGetTicks function to return system ticks.

*** Release Notes for SEE Version 5.1 ***

  Added EnableHeaders so can disable writing of headers.
  Added seeStartProgram and seeKillProgram.
  Added seeSmtpTarget that writes SMTP output to a file.
  
*** Release Notes for SEE Version 5.0 ***

Added IMAP capability. IMAP-only functions are:

  seeImapConnect   : Connect to IMAP server. 
  seeImapFlags     : Get, set, or delete message flags.
  seeImapSearch    : Search for messages with specified flags. 
  seeImapMsgNumber : Gets message numbers from buffer filled by seeImapSearch.
  seeImapSelectMB  : Selects IMAP mailbox. 
  seeImapDeleteMB  : Delete a mailbox.
  seeImapCreateMB  : Create a new mailbox.
  seeImapRenameMB  : Rename mailboxes.
  seeImapCopyMBmail: Copy messages from selected mailbox to specified mailbox.
  seeImapListMB    : List all available mailboxes.

Added seeSetErrorText function.

*** Release Notes for SEE Version 4.0 ***

seeForward and seePop3Source functions added.
seeByteToShort and seeShortToByte functions added.

*** Release Notes for SEE Version 3.7 ***

The seeAttachmentParams function was added to version 3.7. 
Use this function rather than using SEE_SET_ATTACH_CONTENT_TYPE and 
SEE_SET_ATTACH_DESCRIPTION in seeStringParam.

*** Release Notes for SEE Version 3.6 ***

The default delimiter used to separate email addresses and path names has 
been changed from a coma ',' to a semicolon ';'. Delimiters can still be 
changed by using  SEE_ADDRESS_DELIMITER, SEE_PATH_DELIMITER, and 
SEE_ATTACH_DELIMITER.

New functions seeSendHTML, seeEncodeUTF8 and seeDecodeUTF8 were added.

*** Release Notes for SEE Version 3.5 ***

The seeSendEmail will not (normally) disconnect if the server returns an
error for a bad recipient. See the BCAST example program.

SEE_MIN_LINE_WAIT removed. Instead, use SEE_MIN_RESPONSE_WAIT.

SEE_MAX_LINE_WAIT, SEE_MAX_SMTP_WAIT, and SEE_MAX_POP_WAIT removed. Instead,
use SEE_MAX_RESPONSE_WAIT.

*** Release Notes for SEE4FP Version 3.4 ***

*** KEYCODE ***

Versions 3.0 through 3.4 requires that you pass a "key code" (32-bit
integer) as the second argument to seeAttach. Use 0 for the shareware
version. For the registered version, you will be issued a key that
matches your registered DLL's, placed in KEYCODE.FOX in the APPS directory.

Error code -74 (SEE_BAD_KEY_CODE) is returned if the wrong key code is
passed.

[END]

