YPOPs! Revision History


Version 0.7.3 (12th March 2005)

! Fixed the login process for md5 security so that deletes work when using
  this security mode.
! Fixed possible crash if ypops gets an error accessing Yahoo while getting
  list of emails to download.
! If there is an error accessing a Yahoo web page URL, reset the cUrl library
  before retrying.  This greatly improves success of retry and avoids the
  "your login has expired" error.
! If there is a cUrl error, show the message text (not just the error code).
  This should help users troubleshoot their own problems.
! Fixed "Save email in Yahoo's Sent Items Folder" option.  Yahoo changed their
  web site to cause this to stop working.

Version 0.7.2 (3rd March 2005)

! Yahoo changed their interface, requiring changes in ypops login process in
  order for deletes to work.

Version 0.7.1 (24th February 2005)

# Upgraded third party libraries to newer versions:
  - curl 7.13.0 (from 7.12.1)

Version 0.7.0 (14th February 2005)

# Changed all YahooPOPs! references to YPOPs! to complete the name change.
  The only reference remaining is the "YahooPops!" image in the help file.
  Any volunteers to make a new jpeg image for us?
# Troubleshooting is improved!  IE users can now view the .html files generated
  from the Yahoo session to discover the cause of their troubles.
# YPOPs on Unix/Linux will now use directories specified by YPOPS_LOG_DIR and
  YPOPS_CONFIG_DIR environment variables (at run time) or current directory if
  not defined.  These will no longer be compile time settings.  Windows version
  will look at YPOPS_LOG_DIR as well.  In a future release, the Windows version
  will also look at YPOPS_CONFIG_DIR when YPOPs! uses an .ini file instead of
  the registry.
# Allow attachments with same name (as is the case with inline images in outlook)
  to be handed to Yahoo with unique name (e.g. outlook.jpg and outlook.jpg will be
  outlook.jpg and outlook_2.jpg).  The code is primative at this point (I had an
  email to get out :-)) - if ypops gets outlook.jpg, image2.jpg and outlook.jpg,
  however unlikely, it will not recognize the dup (it has to be same name as previous
  attachment.  It will be improved later.  The log also has more useful messages for
  troubleshooting issues with attachments.
# A text file (<yahoo account name>.sendmail.txt) is created at the point an email is
  received on the SMTP port from the email client.  This greatly aids in troubleshooting
  issues with the email format and attachments.
# Installer: Uninstall previous versions if user selects, otherwise abort
  installation.  Uninstall asks if it should delete settings.  New ypops
  startup shortcut is removed on uninstall. Old yahoopops shortcut is removed
  on install.
! Official release of all 0.6.* beta patches.

Version 0.6.050112 (12th January 2005) BETA

! Fixed formatting of plain/text messages received - caused by Yahoo
  introducing new DomainKeys header information.
! Fixed various crashes on Solaris.
! Improved speed on message download (re-implemented change in ltd040915a
  that was inadvertently removed in 050104).

Version 0.6.050104 (4th January 2005) BETA

! Fixed 2 bugs introduced in 0.6.1230: garbled emails and a memory leak.

Version 0.6.1230 (30th December 2004) BETA

! Fixed LOTS of places where YPOPs could have memory overflows, which
  causes undetermined behavior.  This increases robustness/reliability.
  This involved re-writing how YPOPs used the regexp library and getting
  away from using char pointers where possible in favor of the new CStringEx
  class (based on CStdString). The CStringEx::Scanf Extension is no longer
  used.
# YPOPs settings are defaulted more appropriately to eliminate most of the
  problems reported at http://yahoopops.sourceforge.net/ forums.
# For Unix, the value YAHOOPOPS_IP_ADDR is introduced (last line) to specify
  the IP address YPOPs should listen on.  Previously, YPOPs on Unix platforms
  would listen on ANY (see #4), which is a potential security risk.
# For both Unix and Windows, a value of "ANY" is supported for the IP address
  YPOPs will listen on.  This should only be used if YPOPs is expected to
  handle mail for programs running on other systems.  If the mail client runs
  on the same system as YPOPs, you should set this setting to 127.0.0.1 (the
  default).  Any other setting opens YPOPs on the external network and is
  a potential security risk.
! For Windows, the IP address setting might not be defaulted correctly in
  some cases (in the user interface) and didn't reflect the IP address used
  by the program.  This was noticable when the new ANY value was added.  This
  is fixed.
# Updated StdString to latest version.
# Improved "unable to bind" error messages to indicate port and protocol (POP3
  or SMTP).

Version 0.6.1216 (16th December 2004) BETA

! Fixed the security issues raised in the following advisory:
  http://www.securityfocus.com/bid/11256/
  http://www.hat-squad.com/en/000075.html

Version 0.6.1215 (15th December 2004) BETA

! Fixed upload of attachments that exceeded 1023 bytes.  YPOPs would die
  when this limit was released during attachment upload.

Version 0.6.1109 (9th November 2004) BETA

# Sleep for one second before retrying when message download fails.

Version 0.6.1025 (25th October 2004) BETA

! Fixed downloading/deleting of bulk email due to Yahoo increasing the size
  of the msg id.
! Fixed truncation of log messages and unpredictable behavior afterwards.
# Improved debugging - write page to file before processing it.
# Added retry logic when download failures occur.

# Upgraded third party libraries to newer versions:
  - OpenSSL 0.9.7.d (from 0.9.7.c)
  - curl 7.12.1 (from 7.11.2)
! Fixed https secure mode.

Version 0.6.ltd040915a (15th September 2004) BETA

! 'Leave as unread' option will not mark old messages. The name of the option
  should be changed to 'Don't mark as read' in the future.
# Improved message download speed.
! Fixed crash when email body was empty.
# New option 'Apply Limit to Message List' limits the number of messages that
  are reported to client (automatically disabled if Ignore exact email size is
  off).
! Null content type of retrieved pages (when a network problem occurs) was
  causing crashing and hanging popup windows.
! Crumb extraction adapted for Yahoo web interface changes.
# YPOPs signs out of the Yahoo! services after each session if the cookie
  timeout is set to 0 (security improvement).
! Logging of the mailbox usage is adapted for the new Yahoo interface and done
  with every retrieval of the message list.
! Source code that was missing from 0.6 release is back and fixed, making the
  'Ingore exact mail size' option work again.

Version 0.6 (23rd May 2004)

! Installer does not create shortcuts with version numbers embedded in them. This is to
  ensure that during an upgrade, existing shortcuts are replaced.
+ Headers only download
# Case insensitive protocols
# Improved RCPT TO handling
# Limit on number of downloaded messages
# The email list is dowloaded without parsing locale-dependent content
  - Improvement fixing many problems for international users
  - A section of CWebBrowser::FetchMailboxList() which determined
    the language used by the web interface and some declarations
    in the CWebBrowser class have been removed
  - CWebBrowser::FetchMailboxList() scans the folder page only for
    message ids and presence of a link to the next page
+ Only headers are downloaded for "TOP n 0" command
# With on-demand message download the limit affects the actual
  message (or headers) transmission, not the list of available emails
# Compatibility with email clients that use protocol commands
  in lower case (bugfix thanks to David Murphy - glibdud)
! Email::DeleteHeader() is made case insensitive as sometimes
  "Content-Transfer-Encoding: quoted-printable" was not removed
# Address handling when sending has been rewritten to better emulate SMTP.
! Further improvement of fixes for the "dot bug" (Shane's fixes didn't 
  take care of dots in the first line of messages
! A bad pointer during expired session removal is fixed
# Responses are dumped to files after unsuccessful login or headers/body 
  download (improved debugging).
# Code in CWebBrowser::DeleteEmails() is simplified to avoid redundancy (improvement).
+ CWebBrowser::ConnectToYahoo() scans the mail page and logs the usage of mailbox quota 
  (only for new login sessions)
# Upgraded third party libraries to newer versions:
  - OpenSSL 0.9.7.c (from 0.9.7.a)
  - curl 7.11.2 (from 7.10.3)
# Removed the need for a localization file with alternate parsing technique (experimental)
  - Consequently, there is no need for shipping the libxml and iconv DLLs
  - This will result in small distributions and YahooPOPs.EXE requiring lesser runtime memory.
# Incorporated two new command line parameters
  - "/SILENT" -> Add this if you do not want to be given a popup box if another YP is already 
    running
  - "/QUIT" -> This will kill any running instance of YahooPOPs!. This is useful if you're
    running YP without an the icon hidden in the system tray.

Version 0.5 (3rd August 2003)

# First release from a common code base for all platforms. This will make it easier for
  use to make release for various platforms around the same time frame.
# Help file now is minimal. This is to reduce the same of the distribution. The details
  are now being maintained on the website instead.
+ We have dropped XML4C and adopted libxml as the XML library for parsing the
  localization.xml file. This will make the release file smaller in size. Also, libxml
  is almost available on all Linux systems.
+ OpenSSL upgraded to version 0.9.7.a (Release binaries downloaded from the libxml
  website)
+ Danish locale support added
! Proxy bug fixed (Thanks to Victor Morilla)
! Proxy authentication bug fixed (Thanks to Victor Morilla)
! Some memory leaks fixed (Thanks to Victor Morilla)
! "Enable UIDL" fix in reading the YahooPOPs rc file on Linux (Thanks to Tony Quan, Ken
   Liu & Jason)
! A few bug reports have been fixed:
  - Incorrect display on UI that "Deleting emails" when there are no emails to delete

>> Due to the significant changes in the 3rd party libraries being used, we are not making
   an upgrade release for this version. We recommend that you uninstall the previous version
   and install this one. This is to ensure that redundant DLLs are removed from the
   YahooPOPs! directory.

>> The CVS structure will be reorganized around the time this release is being made. The
   new structure will *not* contain sources for any third party libraries. All these will
   be made available as separate files that can be downloaded from the website (but not from
   YahooPOPs! CVS)

Version 0.4.6 (15th June 2003)

# Removed check that either of INBOX or Bulk Mail folder must be checked. User might
  have some user defined folders to check emails for only
# Improved log dumping for debugging purposes
# Uninstaller now removes the YahooPOPs! shortcut from the startup menu, if it exists.
! 25+ emails can be downloaded without any problems now (timeout issues still remain
  though). This fix is for emails that span across multiple page lists in the mail
  folder
! Invalid log file truncation when "limit log size" was unchecked has been fixed
! SMTP Bug fixed: Empty subject lines are now allowed
! When a Yahoo user receives a message encoded with base64, it is automatically decoded
  when YP requests its body. This happens with encoded HTML messages as well as a message
  without any text - just a binary attachment. The fix searches for
  "content-transfer-encoding: base64" and when found it encodes the message back. The
  header cannot be simply removed, since this would result in downloading binary data and
  passing it to email client
! Modified HTTP handling code to allow working with binary message bodies
! Receiving SMTP data from client is changed to cope with "\r\n.\r\n" falling on buffer
  boundary. This does not seem to be an issue with a well written client, but there were
  voices complaining of YP hanging on DATA request and I believe this could be the reason.
  Also, a buggy client can submit a not encoded binary attachment (happend with OE, when
  I changed a bitmap file's extension to nws) which can hang DATA request as well. For
  this reason data from client is treated as a binary stream instead of text until all
  zeros are removed and the string will be NULL terminated (a zero in data could trick
  YP into losing the rest of buffer). Changing those bytes will not affect the message
  much, as it is trash anyway
! RCTP address handling is rolled back to my previous implementation without pointers,
  but with additional fix for RSET handling

Version 0.4.5 (11th May 2003)

+ Multiple instances of YahooPOPs! cannot run now. If an instance of YP is already
  running, trying to launch YP will result in the Configure dialog of the first
  being shown.
+ Hide tray icon option added. [Restart YP for change to take affect]
  - When icon is hidden, launch YP again to get to the Configure dialog.
+ Registry settings will not overwritten when a new version is installed.
# Yahoo Mail Login success/failure detection code modified
# Locale definition for Sweden added
# Locale definitions of India, UK, New Zealand, USA merged into a single
  "International" category.
# Email deletion speed improved. 5 emails are now deleted at a time instead of just
  one at a time.
! Locale definitions for China (Simplified Chinese) updated [Thanks to Jian Yu]
! SMTP bug fixed: BCC (RCPT TO) field was not being cleared after sending an email.

Version 0.4.4 (20th April 2003)

+ Attachment supported for SMTP added [Thanks to newest YP member - Daniel Bryg]
  - YP code won't enforce any limitation on attachments in terms of size and number.
    Whatever received from client will be posted to Yahoo which may reject data
    if it violates any policy (including viruses, etc). In that case an error will
    be relayed to the client and message won't be sent
  - Some elements embedded in html will be dropped while other may be treated as
    attachments. For the above reason html emails with many pictures won't be sent
    with some clients. This is not a big problem since pictures in html are
    discouraged anyway
+ Support for BCC in SMTP added
# Upgraded libCURL from 7.10.1 to 7.10.3
  - The new version has some proxy related fixes which might help. Some memory leaks
    have been fixed as well.
# If the locale for a session cannot be determined, it is set to Yahoo International
  (yahoo.com / USA) by default. Lets see if this helps in solving the "0 Emails found"
  bug which a few people are reporting.
# If the locale cannot be determined, the INBOX HTML page is dumped to a file called
  .inbox.html. This file along with the YahooPOPs log file can then
  be uploaded as a Support Request to analyze why YahooPOPs could not determine the
  locale. This should make it easy for us to narrow down the problem.
# There will be no popup error dialogs being shown if there was any problems in
  parsing the localization.xml file. All this is dumped to the log file now. If it
  cannot read the file, a default locale of type Yahoo International (English) is
  created.
# YahooPOPs! configuration details is now saved in the yahoopops.log file. There
  should be no need to ask people for the YP settings when they report an error
  now. All they need to do is to enable advanced logs in YP and the config information
  will be saved to the log file.
# Option to enable/disable UIDL added
# localization.xml file updated for France
# localization.xml file updated for Brazil
# HTTP fetches are retried 3 times before an error is reported. This is a "just-in-
  case" scenario! If for some reason a connection fails, the retry might help in
  recovering and fetching the content again
# Email header "X-Rocket-Track" (Yahoo internal header) is now being deleted
! Improved the error handling in the SMTP code
! The value for "Save Emails in Sent Items Folder" was not being reflected properly in
  the UI, even though it was being saved in the Registry. Fixed
! A 16 byte memory leak when login to Yahoo Mail failed has been fixed

Version 0.4.3 (06th April 2003)

+ SMTP enable/disable feature added (SMTP is disabled by default)
+ "Save Email in Yahoo's Sent Items Folder" added
# Minor changes to SMTP for compatibility with Mozilla 1.3 [Thanks to Daniel Bryg]
# Help file updated to reflect all features/changes till this version. Finally!!!
! A few more memory leaks fixed
  - There was a leak with every HTTP request (The HTTP headers were not being released)
! If proxy was being used, the following features would not work:
  - Empty Trash
  - Emptying Bulk Mail folder
  - Sending emails
  This have been fixed now.

Version 0.4.2 (22nd March 2003)

+ UIDL support added [Thanks to Leif Jensen & Brian Gunlogson]
+ "Always on Top" for email download status added [Thanks to Brian Gunlogson]
# Improved SMTP support [Thanks to Daniel Bryg]
  - AUTH LOGIN support implemented. [Just enable "Authentication required by outgoing
    server" in your mail client]
  - Support for HTML emails
  <<< SMTP is still very much experimental. Do not use it in a production environment >>>
# Renamed the "log" variable to "logFile" to avoid conflicts when using gcc 3.x
  on Linux [Thanks to Leif Jensen]
# Updated definition for Italian localization [Thanks to Danilo Schembri]
! "Start In" folder bug fixed for YahooPOPs! shortcut in the Startup folder.
! LIST index out of bounds bug fixed. This should result in downloaded emails
  from not "disappearing"
! A few memory leaks have been resolved
! Makes sure messages are not deleted with leave messages on server option is checked. [Thanks to Brian Gunlogson]

Version 0.4.1 (20th March 2003)

! Fixed email downloading bug. [Thanks to Daniel Bryg - ltd@users.sourceforge.net]
  This version was not released as a Windows Installer release, but just YahooPOPs.exe was
  provided.

Version 0.4 (Experimental) (13th November 2002)

+ Basic SMTP support added. Emails (Text/HTML) can be sent via YahooPOPs!. Attachment
  support is not present in this release.
+ Localization information moved out of binary to XML file. This will make it convenient
  for end-users to configure YahooPOPs! themselves for their language. XML4C is being used
  for this.
- The "Yahoo Interface" configuration option has been removed as it is not required any
  longer. The XML file contains all the information required.
+ HTTP functionality is now being provided by libcurl. This should improve the stability of
  the YahooPOPs connectivity with Yahoo Mail's website.
+ Support for persistent connections
+ "Empty Bulk Mail on Exit" provided. There is no need to download emails in the Bulk Mail
  folder to delete them now. Simply enable this option and disable "Download Bulk Mails" to
  delete the contents of the bulk mail folder at the end of the session.
+ All emails not have a "X-YahooPOPs-Folder" header. The value of this header is the Yahoo
  Mail folder from which the email was downloaded.
! Network I.P list in the Configuration dialog showed 127.0.0.1 twice if localhost was the
  only I.P available. This has been fixed.

Version 0.3.9 (1st November 2002)

! Attachment download bug fixed
! A few memory overrun issues in the HttpSession class fixed

Version 0.3.8 (6th October 2002)

+ Uninstaller deletes registry entries. This should make it easier to install newer versions
+ "Check for new version" implemented
! "Mark messages as unread" bug fixed
! "Connection reset by peer" bug fixed

Version 0.3.7 (1st October 2002)

! Disclaimer dialog bug fixed
! User-defined folders bug fixed
! Inbox email always downloaded bug fixed
# "Beta Interface" of Yahoo Mail renamed to "NewLook Interface". This is not a standard
  term used by Yahoo. I just thought it was better suited than "Beta".
# Help file updated - A Full version and Compact version released.

Version 0.3.6 (15th September 2002) - Compact Release Only

+ Support for downloading emails from user-defined folders
+ Tooltips (Thanks to mYstic Y0gi)
# Removed the YahooPOPs! user agent string. Mozilla is the default user agent string from
  this release.
! Fixed the bugs which caused 0.3.5 to be so unstable.
! The POP3 USER and PASS commands are now accepted in any case.
! Fixed the proxy authentication bugs. The code is currently experimental and I cannot assure
  that it will work properly! Send in your feedback if you face problems with the proxy auth
  feature. (PS: Digest authentication is not supported). I have tested this using FreeProxy
  and NetProxy.
! Username and password are now encoded for special characters like &.

Version 0.3.5 (20th July 2002) [Withdrawn on 27th July because of a serious bug]

+ Autostart YahooPOPs! when Windows starts
+ The executable is being compressed using UPX from this release onwards. UPX helps reduce
  the disk space requirements by compressing the EXE by almost 50%.
# HTML emails should be better supported now (Thanks to mYstic Y0gi)
# Removed dependency on HTML Help developer libraries (Thanks to mYstic Y0gi)
# Internationization:
  - Support for Spanish
  - Support for Simplified Chinese (Thanks to X. F. Chen)
    [Needs to be tested because I'm not using Unicode strings!]
# Delete only 25 emails at a time rather than all emails in one shot (Yahoo! Mail allows
  25 emails to be deleted at a time only). This is to ensure that the URL does not become
  too large for Yahoo to handle! This change has been brought about because some people
  reported that email deletion was not functioning when there were a large number of emails.
# Help file is now available in Russian. Download it from the website. (Thanks to Ssergey)
# Internal code restructure: (Thanks to mYstic Y0gi for the suggestion)
  - Unused functions removed from CHyperLink, CProgressWnd and CTrayIcon classes.
  - The SaveData() function in the configure dialog pages have been optimized to ensure
    that one call to it is sufficient to save the data. Initially, two calls were being
    made.
# MIME parsing library integrated into code.
  - SMTP email parsing is integrated into the code.
  - SMTP module is not available yet. Wait for 0.4 :)
! Secure login bug fixed. (Partial fix provided by Brian Gunlogson)
! When both secure login and MD5 hashed passwords were enabled, YahooPOPs! used to crash.
  This bug has been fixed.
! GetEmail bug fixed (Thanks to Mark Salazar)
! HttpClient::DoGet recursing bug fixed (Thanks to Terry Mullett)
! "Network Edition" bug fix -- YahooPOPs was always listening on localhost!!

Version 0.3.4 (30th June 2002) "Network Edition"

+ Activity Log
+ Support for Yahoo Argentina (Thanks to Gabriel Carro)
+ Network support. If your PC is on the network, you can select the IP address on which
  YahooPOPs should run.
+ Leave messages as unread on the server (for messages not deleted)
# Configuration details for Netscape 4.7x added to Help
# YahooPOPs does not quit when port 110 is not available. This is to ensure that you can
  change the port in YahooPOPs to something else.
! Silent mode bug fixed
! Empty trash on exit bug fixed (Thanks to Brian Gunlogson)
! Static memory overrun during startup fixed
! Multiple configure dialog popups fixed
! "Invalid password dialog" popup in email clients fixed (Thanks to mYstic Y0gi)

Version 0.3.3 (23rd June 2002)

+ Document on how to compile YahooPOPs! added --> Needs to be verified by someone.
+ Support for the new Yahoo! Mail Beta site
+ Option to change the POP3 port. Next release will support changing of IP address as well.
# Configuration details for Eudora added to Help
# Support for the yahoo.co.uk (United Kingdom) website
! Proxy authentication information was not being saved. Someone, please test the proxy auth
  feature. I do not have access to a proxy server with proxy auth enabled. :(
! If "Max emails per session" feature was being used with a value less than 25, then emails
  were not being deleted.
- Removed deletion of Yahoo specific email headers. Their deletion was of no use.
- Removed addition of the "Content-Length" header. This is an optional header and email
  clients work without it.

Version 0.3.2 (17th June 2002)

+ Quiet (Silent) mode added. When enabled no dialogs popup when emails are being downloaded
! Configuration details were not being saved. This has been fixed
! User agent persistence bug fixed
! Fixed bug in LIST response which prevented it from working with Eudora
# Configuration details for nPOP added to Help

Version 0.3.1 (15th June 2002)

! DeleteHeader bug fix provided by zerosum
# Improved help file (Details for Outlook Express, Mozilla, Lotus Notes, Incredimail, etc.)

Version 0.3 (30th May 2002)

+ Proxy authentication support
+ Empty trash on exit
+ Support for the bulk mail folder
+ Option to cancel email downloading
+ Downloading of ALL emails, or UNREAD emails or FLAGGED emails
# Improved configuration dialog
! An HTTP GET was been carried out for deletion of emails even
  when there were no mails to delete (either no DELEs sent by
  the client or the mailbox was empty). This has been fixed.
  QUIT command should be processed faster in scenarios where
  no emails are to be deleted from the mail server.

Version 0.2 (26th May 2002)

! Progress bar status bug fixed
+ Secure password transmission using MD5
+ SSL support using OpenSSL
# The maximum number of emails per session has been increased
  to 1000 (from 100)

Version 0.1.1 (24th May 2002)

! Increased username and password decoding variables to store
  upto 80 characters. The previous version had support for a
  string of 20 characters only and this was not sufficient
  under all circumstances.
! Empty mailboxes were not being handled correctly. Clients used
  to report an error. Even though a minor issue, this has been
  fixed. Now clients mention, "No new mails" or something similar.
! The configured user agent field was not being used for the
  requests to the Yahoo Website.
! Emails were not being deleted at all times during the UPDATE
  phase. This has been fixed. Also, rather than deleting each
  email one at a time, along the emails marked as deleted are
  being deleted in one request.
# Rather than waiting for all messages to download before
  sending the "+OK Mailbox open with X messages", now this
  message in a modified format is sent immediately after the
  login is successful. The idea is to reset the timeout
  counter in the email client.
# Graceful exit if another copy of the application is already
  running.
# First round of code cleanup
# Moved most "char *"s to CStdString for better memory management.
# All GET and POST requests now handle page redirects.
+ Progress bar showing status of email downloads
+ Integrated help system
+ Maximum emails to be downloaded per session can be configured
  now. This is to ensure that the POP3 client does not time out
  when you have a large number of emails.

Version 0.1 (18th May 2002)

+ POP3 support
+ HTTP Proxy support
+ Localization for US, India, France, Spain, Germany, Italy and
  Brazil
+ Multithreaded library allowing multiple clients to be serviced
  at the same time
+ Runs in the system tray
+ Configuration dialog
+ Install system using Nullsoft NSIS

Legends

+  Feature Addition
-  Feature Removal
!  Bug Fix
#  Feature/Performance Enhancement

http://yahoopops.sourceforge.net/
Copyright (C) 2002,2005 YPOPs! Team