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

From: Alex Kilgore <adkilgore_AT_gmail.com>
Date: Mon, 25 Feb 2008 12:34:25 -0500

Alex Kilgore wrote:
> 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
>
Sorry about the formatting on the previous mail if it didnt show up
right in your mail client,
(In mine the comments word-wrapped all over the place),
if you intend to use the script I would edit out and/or fix those
i made the comment lines a bit shorter (below)
also, in the last block of code, it makes use of alsaplayer, if you
don't use alsa make note of that
I also left all of the paths in there to specific files, you would need
to edit those

#!/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;
   }

# The next line fetches 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 - 18:34:38 UTC

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