#!/bin/sh # Send an MMS message to your phone when new emails come in. # The message will have the number of new mails in the subject # and the body will contain the From and Subject fields of up to the 3 # most recent new mails. If the new mail count is above 3, there will also # be 'and more...' at the end. # Assumes you have a maildir inbox on this machine; # you can use offlineimap or similar to sync recent mail to a maildir # or use -l if this machine is actually your mailserver # import the config file ./.config # addr= # phone= # inbox= # smtp_server= # smtp_user= # smtp_password . ./.config if [ "$1" != -l ]; then if ! pgrep offlineimap; then offlineimap & fi fi oldnew=0 summary() { i=0 for m in $(ls -1r ${inbox}/new/*); do i=$((i + 1)) if [ ${i} -gt 3 ]; then echo "and more..." break fi subject=$(grep ^Subject: ${m} | head -n 1) from=$(grep ^From: ${m} | head -n 1) echo ${from} echo ${subject} echo done } while true; do newnew=$(ls -1 ${inbox}/new | wc -l) if [ ${newnew} -gt ${oldnew} ]; then if [ "$1" = -l ]; then echo "$(summary)" \ | mail -r ${addr} \ -s "new mail [${newnew}]" \ ${phone} else echo "$(summary)" \ | mail -r ${addr} \ -s "new mail [${newnew}]" \ -S smtp=${smtp_server} \ -S smtp-use-starttls \ -S smtp-auth=login \ -S smtp-auth-user=${smtp_user} \ -S smtp-auth-password=${smtp_password} \ ${phone} fi fi oldnew=${newnew} sleep 2m done