Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 1 Sep 2007 02:32:20 +1000 (EST)
From:      Ian Smith <smithi@nimnet.asn.au>
To:        L Goodwin <xrayv19@yahoo.com>
Cc:        freebsd-questions@freebsd.org, Derek Ragona <derek@computinginnovations.com>
Subject:   Re: Configuring FreeBSD 6.2 to use sendmail for sending only
Message-ID:  <Pine.BSF.3.96.1070901011832.4366B-100000@gaia.nimnet.asn.au>
In-Reply-To: <20070831052854.341C116A4C5@hub.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 30 Aug 2007 18:14:55 -0700 (PDT) L Goodwin <xrayv19@yahoo.com> wrote:

 > --- Derek Ragona <derek@computinginnovations.com> wrote:

[ slashing mercilessly ]

 > > >--- Chuck Swiger <cswiger@mac.com> wrote:
 [..]
 > > > > Although, it is entirely reasonable to consider
 > > > > using Postfix instead.

 > > Here is a sample script that you can use as a
 > > template:
 > =======================================================
 > > #!/bin/sh
 > > 
 > > #define any commands you will use
 > > MAILFILE=mymailfile
 > > MAILFILE2=mymailfile2
 > > SENDTO=derek@computinginnovations.com
 > > CCTO=derek@computinginnovations.com
 > > MAIL=/usr/bin/mail
 > > AWK=/usr/bin/awk
 > > CAT=/bin/cat
 > > TR=/usr/bin/tr
 > > TEMPDIR=/tmp
 > > 
 > > #make sure we have paths
 > > export PATH=$PATH:/usr/local/sbin:/usr/local/bin
 > > 
 > > cd $TEMPDIR
 > > $CAT /etc/passwd | $AWK -F : '{ print $5 }' >
 > > $MAILFILE
 > > $TR -cd "\012-\172" < $MAILFILE > $MAILFILE2
 > > $MAIL -s "My list of real user names subject"
 > > $SENDTO -c $CCTO < $MAILFILE2
 > =======================================================
 > 
 > Derek, your example brings up another question.
 > 
 > Should I be calling "mail" or "sendmail", and which
 > mail or sendmail should I invoke if there is more than
 > one of either? Chuck's example calls sendmail in a
 > path that does not exist on my system (my sendmail is
 > in /usr/sbin/). I usually invoke whichever one is
 > first in my path.

Use whatever works for you, and it never hurts to be specific :)

 > One more question. Is it ok to run the script (and
 > send the email) as user root, or should I create a
 > user account with more limited permissions -- if so,
 > what limits should I set?

There are so many ways of doing this .. here's another that we'd use to
mail out accounts to members monthly, from text files generated by some
php and mysql magic on another box, by another guy.

Note that this is enforced to be run by user 'subs' (here uid 996), so
that's who these messages are 'From:'.  A script run from cron need not
be so paranoid about checking things .. this was hand-run 'when ready'. 

 #!/bin/sh
 # sendacts 7Jan00 smithi .. mail out SubsBot messages .. cleanup 2Oct02
 # each *.act file begins with To:, Cc:, X-mailer: etc lines

 maildir="/home/subs/bills/$1"  # preexisting dir as parameter eg '2000-01'
 mailrun="./command.txt"   # perline format: 'sendmail -t < userX.act 2>&1'

 if [ "`id -u`" != "996" ]; then
     echo "$0 must be run as user subs .. 'su subs' and retry .."
 elif [ "$1" = "" ]; then
     echo "usage: $0 directory"
 elif [ ! -d $maildir ]; then
     echo "$maildir does not exist .. mkdir first, unpack zipfile there"
 elif [ ! -w $maildir ]; then
     echo "$maildir is not writeable .. an older locked one, perhaps?"
 else
     cd $maildir
     if [ ! -f $mailrun ]; then
         echo "can't find ${maildir}/${mailrun} .. zipfile not unpacked?"
     elif [ -f ./mailout.done ]; then
         echo "'rm ${maildir}/mailout.done' if you wanna repeat mailout?"
     else
         umask 27
         echo "$0 sending mail:" ; cat $mailrun
         . $mailrun
         touch ./mailout.done ; echo "$0 done"
         exit 0
     fi
 fi
 exit 1

with ./command.txt containing a line per recipient such as:

 sendmail -t < user1.act 2>&1
 sendmail -t < user2.act 2>&1
 [..]
 sendmail -t < userN.act 2>&1

and with the *.act files beginning such as:

 To: smithi@nimnet.asn.au
 Subject: August 2006 Account for Ian Smith
 Cc: subs@nimnet.asn.au
 Reply-to: subs@nimnet.asn.au
 X-Mailer: subsbot v0.9 beta 8.90 :)

 Hello Ian Smith,
 [..]

HTH, Ian




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.1070901011832.4366B-100000>