Free Your Email

TODO

  • Use a proxy server if supplied on the command line. (done)
  • Important: I don't really have a good authentication routine. I.e. I don't store username and passwords for POP3. Since freeyouremail is a daemon run as root, I authenticate via /etc/passwd ... which is a BIG security hole since POP3 passwords are CLEAR text. Maybe we could store the username+password in the ~/.appauth (see Readme). That would be more friendly to a WIN32 implementation too; which doesn't have home directories. Note: if we stop using /etc/passwd, then using MD5 and APOP would be possible.

    Update: Username and Password are stored in user owned files! Users other than root should not be able to read your email address, username, and/or password. MD5 and/or APOP should still be implemented.

  • Copy freeyouremail.pl to socket_loop.pm and 'use' it in the clients and daemons. Change "main::XYZ" constants to "XYZ" and import them from socket_loop.pm. (done)
  • Use a standard documentation creator (like doxygen, cppdoc, perldoc, perldoc2html, new in-house parser?).
  • Enhance the dead.letter module to save/restore emails upon fatal errors and shutdowns. If anything else happens (the power is lost), what more can we do? Update: document the importance of shutdown to prevent data/email loss.
  • Abstract daemons (make it easier to create a new one). (done)
  • Abstract clients (make it easier to create a new one). (partially done; still need a webemail_agent style module)
  • 'qr//' the regular expressions in an extra configuration module. Maybe an array of regular expressions based on the actual HTML returned. That way if Yahoo!Mail or GroupWise changes/rotates their HTML we would still function based on regular expressions. We could also push out an update quicker to match changing HTML. Note: create a link in the HTTP daemon or create a 'REGEX' client to check for update(s) and download this module and even automatically restart Free Your Email.
  • Create a linux init script. (partially done via 'suse-init.freeyouremail')
  • Clean up GroupWise, Yahoo!Mail, Yahoo!Weather clients. That is, make them readable (add more comments), stable (remove 'die's), and robust (allow for different user environments).

    Update: A lot of die(s) have been removed in favor of the dead_letter module. I have been able to use freeyouremail for weeks w/o restart or email loss. YMMV.

  • Implement a client for stock quotes (nice to have) and possibly provide xfaces picons.
  • Make the HTTP interface functional : configure running clients and daemons, give a [start] and [stop] button to configure begintime and endtime of clients, show statistics, and make it secure (maybe password protect per client/daemon, user, root, etc...). Make the functional aspect work per user (don't let one user click [stop] for everyone). Remove passwords and other sensitive data.
  • Filter out Yahoo!Mail and other "signature ads" from the tail end of emails (including forwarded emails). (nice to have)
  • Add some "hot" new service/functionality not offered in other projects. What would that be? Stock Quotes? Appointment/Calendar monitoring? Ideas are coveted.
  • Add more clients (hotmail, front.ru, mail.ru, ISP accounts). (Update: hotmail, front.ru, and mail.ru = done; ISP = no value added?)
  • Run under WIN32 (run w/o root, home directories, etc...) Maybe put the dead.letter right on the desktop where it can be found? Where do we put .appauth (do we eliminate it)? Put config files in "Documents and Settings"? or "Profiles"? Maybe have an installer make the choices and save some registry settings (or ini file?). Run an installer and let it make the directory decisions or ask for them (doesnt FSF/GNU have a free native windows installer?).
  • Simplify command line options via init script and/or rc style config file. (partially done via 'suse-init.freeyouremail')
  • Try to compile xfaces under Cygwin for WIN32 users.
  • Only FATAL dies can be left in a "release" and only if a dead.letter notification is provided. The dead.letter noitification should tell the user how to get into contact with us (shouldn't it?). (partially done; see above)
  • I use DSL, so I don't know how dail up would react to a disconnect/internet unavailable situation, test and possibly fix. (partially done; many restarts and few errors during week long runs)
  • Also since I use DSL, I have not yet coded a retry for sending emails.

freeyouremail is developed on:
SourceForge.net Logo

Valid HTML 4.01!