Do you want to stick with Bash for the solution?
I've done something similar using Perl, so I bet I could modify it to do
something like this.
The Perl script uses *Inotify2*, so it's fairly portable.

If you want to stick with Bash, maybe you could assemble your email into a
few different strings, such as  to, from, subject, and body.
You could only send an email with all the previous information and the body
of the emails concatenated together.
That way you could build the emails based on some events and then send one
email on a specific event.
Think of it as a sentinel-controlled event loop.

-> Jake


On Tue, Aug 20, 2013 at 11:57 PM, B-o-B De Mars <mr.chew.baka at gmail.com>wrote:

> I need to monitor various directories contained in one base directory, and
> notify certain users by email when a file has been added or changed in
> their monitored directory.  I wrote a script using inotifywait, and when an
> event is triggered it fires of an email to the user with the location & the
> new file name.
>
> The script is working, but can generate many emails for one event (saving
> a large file for example).
>
> I have tried many of the different --event types available in inotifywait
> to see if I could get it down to one notification.  No luck yet.  Here is
> the basic outline of the script.  Any thoughts on how I might be able to
> get this to only send one email per file would be greatly appreciated.
>
> #!/bin/bash
> #
> # usage: script DIR email-to-addr
>
> DIR=$1
> EMAILTO=$2
>
> inotifywait --recursive --monitor --quiet --exclude '.*\.tmp' \
> --event close_write --format '%f' \
> /var/www/htdocs/contracts/**contracts/$DIR | while read FILE ;
> do
> {
>         echo "To: $EMAILTO"
>         echo "From: MONITOR ROBOT <DO-NOT-REPLY at somewhere.com>"
>         echo "Subject: Alert - $DIR"
>         echo " "
>         echo "A new file has been detected in $DIR"
>         echo ""
>         echo "The New File is named:"
>         echo " "
>         echo $FILE
> } 2>&1 | /usr/bin/sendmail -t
> done
>
> Thanks!
>
> Mr. B-o-B
> ______________________________**_________________
> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
> tclug-list at mn-linux.org
> http://mailman.mn-linux.org/**mailman/listinfo/tclug-list<http://mailman.mn-linux.org/mailman/listinfo/tclug-list>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.mn-linux.org/pipermail/tclug-list/attachments/20130821/25efa5b4/attachment.html>