44 lines
1 KiB
Bash
Executable file
44 lines
1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
QUEUEDIR=$HOME/.msmtpqueue
|
|
|
|
# Set secure permissions on created directories and files
|
|
umask 077
|
|
|
|
# Change to queue directory (create it if necessary)
|
|
if [ ! -d "$QUEUEDIR" ]; then
|
|
mkdir -p "$QUEUEDIR" || exit 1
|
|
fi
|
|
cd "$QUEUEDIR" || exit 1
|
|
|
|
# Create new unique filenames of the form
|
|
# MAILFILE: ccyy-mm-dd-hh.mm.ss[-x].mail
|
|
# MSMTPFILE: ccyy-mm-dd-hh.mm.ss[-x].msmtp
|
|
# where x is a consecutive number only appended if you send more than one
|
|
# mail per second.
|
|
BASE="`date +%Y-%m-%d-%H.%M.%S`"
|
|
if [ -f "$BASE.mail" -o -f "$BASE.msmtp" ]; then
|
|
TMP="$BASE"
|
|
i=1
|
|
while [ -f "$TMP-$i.mail" -o -f "$TMP-$i.msmtp" ]; do
|
|
i=`expr $i + 1`
|
|
done
|
|
BASE="$BASE-$i"
|
|
fi
|
|
MAILFILE="$BASE.mail"
|
|
MSMTPFILE="$BASE.msmtp"
|
|
|
|
# Write command line to $MSMTPFILE
|
|
echo "$@" > "$MSMTPFILE" || exit 1
|
|
|
|
# Write the mail to $MAILFILE
|
|
cat > "$MAILFILE" || exit 1
|
|
|
|
# If we are online, run the queue immediately.
|
|
# Replace the test with something suitable for your site.
|
|
#ping -c 1 -w 2 SOME-IP-ADDRESS > /dev/null
|
|
#if [ $? -eq 0 ]; then
|
|
# msmtp-runqueue.sh > /dev/null &
|
|
#fi
|
|
|
|
exit 0
|