Re: [wmii] Need help with mailnotifier, I am confused

From: Alex Kilgore <adkilgor_AT_spartan.uncg.edu>
Date: Mon, 25 Feb 2008 11:58:09 -0500

Niels Rasmussen wrote:
> Alex Kilgore skrev:
>
>> I have a mail notifier on my system that I wrote in Perl, The way that I
>> managed this was to get the script to write the formatted number of
>> messages to a file (in this case below it was called "mail") and i had
>> wmiirc echo the contents (using cat) to the status bar
>> so my status function in the wmiirc looked something like:
>>
>> status()
>> {
>> echo -n "$(cat '/home/alex/.wmii-3.5/mail')" " $(date +'%l:%M')"
>> }
>>
>>
>
> Hi alex
>
> Could you post yor script here please ?
>
>
Here you go, Ive commented it to explain a little, you may have to edit
it to your needs, hope this helps

#!/usr/bin/perl

#open file
open(STAT,'/home/alex/.wmii-3.5/mail.status');

#get the contents that the file previously had
$mailprev = <STAT>;

#if "No Mail" is written in the file, set the number of messages to 0
if ($mailprev eq "No Mail")
    {
        $mailprev = 0;
    }

#if the file was blank, set the number of messages to 0
if ($mailprev eq "")
    {
        $mailprev = 0;
    }

#fetch the new message count from the POP3 server and filter out the
irrelevant parts, for me, Fetchmail generated the #relevant output :
either "fetchmail: No Mail for ..." or "fetchmail: X messages for...."
#I used fetchmail for this, but you could use any other mail checking
application, of course you would need to alter that
# so that it fits your needs, it would be very easy to use whatever you
do to check mail, you could do something
# along the lines of
# $mail = `ls -al ~/Mail/new |wc -l`." messages";
# to get a message count, (I am not too familiar with the maildir
format, so if I am wrong about that let me know

$mail = `fetchmail -c | sed -e "s/fetchmail\://" |sed -e "s/for.*//"`;

#open file for writing
open(STAT,'>/home/alex/.wmii-3.5/mail.status');

#actually write the formatted output to the file
print STAT "$mail";

#This whole next section is used to play a sound when new mail arrives,
omit it if you dont need it
#---------------------------------------------------------------------------------------------------------------------------------------------------------#

#this condition is specific to fetchmail because it generated output
without 0 in it when there was no mail
if ($mail eq 'No Mail')
    {
    $mail = 0;
    }
$mail =~ /[0-9]/;
if ($mail > $mailprev)
{
system("aplay /home/alex/files/sounds/beep.wav");
                                        stop;
}

#--------------------------------------------------------------------------------------------------------------------------------------------------------------#
Received on Mon Feb 25 2008 - 17:58:36 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 16:36:18 UTC