Multi POP3 Accounts Mailbox Checker
Written by Louis-Benoit JOURDAIN (wmpop3lb@jourdain.org)





WMPop3LB is a multi POP3 accounts mailbox checker.

It can connect to up to 6 POP3 accounts to check if you have mail, get the "From:" and "Subject:" header fields of each mail and display them in a 7 lines window.

Messages can be deleted directly off the servers by selecting the mails to delete and clicking the "delete" button.

Feature Summary

  • up to 6 different pop servers / accounts.
  • displays "From:" and "Subject:" fields for each mail.
  • displays number of unread messages or total number of messages, per account
  • different autochecking intervals for each pop account
  • can delete mail directly off the server
  • can launch a command for each new mail received, for each selected message or for each server.
  • very verbose interface

Using WMPop3

  1. If you have no mail, WMPop3LB will show "No mesg" and will count down the time before the next cheking.
    If none of the configured server can be contacted, WMPop3LB will show "ERROR" and will count down the time before the next checking.
  2. If you have mails, WMPop3LB will display a line for each mail, with the message number and will start scrolling the line, showing the server alias identifier, the "From:" and "Subject:" header fields in the following format:
    "alias:<from field>/<subject field> * "
     * each time a new mail is received, wmpop3lb will try to launch the newmailcommand if it is specified in the configuration file.

  3. Depending on the option chosen for viewallmessages, it will display either:
    • the alias, The From: and Subject: fields of each mail as described above.
    • The total number of messages or the number of unread messages (depending on the configuration parameter "countunreadonly") on the POP3 server (if the server has been contacted successfully) as well as the number of messages selected.

      Switching between number of unread messages and total number of messages can be done by clicking on the right side of each server line (':' means total number, '-' means total number of unread).

      If the server cannot be contacted, it will show one of the following error message:

      • - <alias>: C*ER --> connection error
      • - <alias>: L*ER --> login error (wrong login or passwd)
      • - <alias>: M*ER --> can't get mails.
    • * The far most right button is used to toggle both views.

  4. To delete one or more messages directly off one or more servers, select the messages you want to delete and then click on the bottom left "DEL" button.

    You can check how many messages are selected by switching view mode.

    A status per server will show up during "displaydelay" seconds with the following error codes:

    • - <alias>:OK: messages were deleted successfully from the server
    • - <alias>:NONE: no messages were selected for this server
    • - <alias>/D:nb: nb messages failed to be deleted.
    • - <alias>:Err: an error has occured (connection or else).

    WMPop3LB will not allow you to delete messages if the content of the mailbox on the server has changed since last checking.
    It will instead display an error message ("mailbox content has changed between updates del can.") and reload the content of the mailbox from the server.

  5.  If a message is selected in the message view mode, the "reload" button will change to represent an "open" button.
    Clicking on this button will launch the command specified in the configuration file by the selectedmesgcommand parameter.
  6. To select all the messages, go to the summary view mode and click on "sel:" (left side of the last displayed line).
    To unselect all the messages, click on the right side of that line.
  7. To manually check for mail at any time, mouse click on the 2nd button from the left, with a round arrow, if no message is selected. Otherwise, go to the summary view mode.
  8. To launch the mailclient configured for a server, click on the server alias name in the summary view mode.
  9. To turn off auto mail checking, mouse click on the "ch" button (second from the right).
  10. If you have more than 7 messages on all your servers, you can scroll the window up and down using the up and down arrows or the scrollbar on the left.

Configuring WMPop3LB

WMPop3LB, when first executed, will check if there is a .wmpop3rc file in the user's home directory, it will create it if it can not be located.

This file must be edited and the following fields must be changed :

  • before any [server] section:
    1. autochecking: This allows to disable or enable auto mail checking.
      1 enables, 0 disables.
      To switch mode while using wmpop3lb, click on the "ch" button (2nd from the right.
    2. viewallmessages: This allows for alternating mail views upon startup,
      0 shows the From: and Subject: header fields of each mail (message view mode).
      1 shows the total number of messages or the number of unread messages, per domain, and the number of selected messages (summary view mode).
      To switch between the 2 modes while using wmpop3lb, click on the button in the bottom right corner.
    3. displaydelay: this will determine how long error messages show up before the screen is cleaned up.
    4. scrollspeed: percentage of default scrolling speed (100 is default value)
    5. tempdir: directory to put temporary mails retrieved when using %c, %C or %m template substitutions (default: /tmp).
  • for each [server] section (you can list up to 6 [server] sections):
    1. popserver: this is the name of the pop3 server to contact.
    2. port: this is the port the pop3 server is on ( default 110).
    3. username: user's pop3 login name.
    4. password: user's pop3 login password.
    5. alias: 3 alphanum characters server alias name, to differentiate servers in the display window.
    6. mailcheckdelay: Number of minutes, before checking mail on this server. (default = 10 minutes)
    7. countunreadonly: in the summary view, 0 displays the total number of messages on the server, 1 displays only the number of unread messages. To switch between the 2 options when using wmpop3lb, click on the right side of the server line in the summary view mode.
    8. mailclient: command to launch when clicking on the server alias name in the summary view mode (See "template substitution" for more options).
    9. newmailcommand: command to launch when a new mail has arrived on the server (See "template substitution" for more options). A mail is considered new until the next check on the server.
    10. selectedmesgcommand: command to launch on selected messages (See "template substitution" for more options).
    11. mailseparator: specify a separator to include between each mail when using %c or %C template substitutions.
    12. maxdlsize: in the case of the %c, %C and %m template substitutions, will not download messages bigger than this value (-1: no limit).
Notes:
  • any value which contains spaces or special characters must be written between double quotes ('"').
  • configuration options specified between double quotes ('"') can now be spread among multiple lines. Usefull for mailseparator option (see sample configuration below).
Template Substitution

Template substitution flags must be specified alone, as a single parameter. Substitution will not take place if the flag isn't surrounded by spaces. 
For ex: 
  • "echo %s %m %n" will work
  • "echo '%s' /tmp/%m" will not work.
One command will be launched per mail if the following flags are used (even if some other flags are used):
%f
"From:" field value (will be enclosed between quotes ('))
%s
"Subject:" field value (will be enclosed between quotes ('))
%m
path to the temporary file containing the downloaded message
%n
number of the message on the mail server (determined when launching the POP 'LIST' command).

One command only will be launched for all the mails (new mails, selected mails or mail client) if the following flags are used:
%c
path to the temporary file containing all the messages downloaded from the server.
When used in the newmailcommmand, only applies to new mails.
%C
path to the temporary file containing all the selected messages downloaded from the server
%t
number of new messages
%T
total number of mails on the server
%S
server name (equivalent to the popserver configuration parameter)
%a
server alias (equivalent to the alias configuration parameter)
%P
server port (equivalent to the port configuration parameter)
%u
username (equivalent to the username configuration parameter)
%w
password (equivalent to the password configuration parameter)
%%
% character

Notes:
  • when performing the %m, %c or %C template substitution, wmpop3lb will connect to the remote pop server and download the messages to one (%c, %C) or more (%m) temporary files in the 'tempdir' directory.
    • the temporary files are deleted each time wmpop3lb is started.
    • the template for the temporary files is Pop3tmpXXXXXX, where 'XXXXXX' is replaced by a random string.
    • it will not download files bigger than 'maxdlsize' and will write an error message in the file instead.
    • downloading the message file can take time. During that time, wmpop3lb will seem to hang. This is a known problem.
  • if %f, %s, %n or %m are specified in a command, the command will be launched once for each mail. If you use %c or %C in that same command, wmpop3lb will perform the '%c' and '%C' substitution for each mail.
    If you have, for example, 30 mails on your server and you use the '%c' flag as long with any of the %f, %s, %n or %m flags, wmpop3lb will download the 30 mails 30 times! 
    So, beware of what you're doing...
  • using '%C' with the newmailcommand parameter will not download any message, as a new message if, by default, not selected...

Sample Configuration

#####################################################
# wmpop3lb configuration file #
# #
# for more information about wmpop3lb, please see: #
# http://wmpop3lb.jourdain.org #
# or send a mail to #
# wmpop3lb@jourdain.org #
#####################################################
autochecking 0 # 1 enables, 0 disables
displaydelay 2 # nb of seconds error info is displayed
scrollspeed 100 # percentage of original scrool speed
tempdir /tmp # directory for tmp files
viewallmessages 0 # 0 Shows the from and subject
# 1 Shows the number of messages
#
# Replace all values with appropriate data
#
[Server] # server section
alias "tes"
popserver "mypop.server.com"
port 110 # default port
username "foo"
password "bar"
mailcheckdelay 10 # default mail check time in minutes
countUnreadOnly 0 # count unread messages only
mailclient "/goinfre/mozilla/mozilla -mail" # for example...
newmailcommand "/usr/bin/play /d/wav/gotmail31.wav"
selectedmesgcommand "/usr/local/bin/launch_mozilla %C"
mailseparator "This value
is spread among multiple
lines
"
maxdlsize -1 # (no limit)
#
# start new [server] section below (up to a total of 6)

Known problems

  1.  wmpop3lb was built on the existing source code of wmpop3, written by Scott Holden (scotth@thezone.net)

    I didn't touch a lot the network functions, which are still using blocking sockets and connections.
    Because of that, if there is any network problem while waiting for some data, wmpop3lb will hang forever.
    The only solution, for the moment, is to restart wmpop3lb.

     Next version will use non-blocking sockets.

  2. when launching a command which contains %c, %C or %m template substitutions, wmpop3lb can appear to hang, as it is downloading the message files to a temporary directory. 

    Next version should spawn the command substitution function in a background process so that it doesn't block wmpop3lb.

Installation instructions

See here

Changelog

See here

Download

See here

Feature summary
How to use it?
How to configure it?
template substitution
Sample configuration
Installation Instructions
Changelog
Download



This software is based on Wmpop3-0.5.6 by Scott Holden ( scotth@thezone.net )