summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Stevens <nilix@nilfm.cc>2021-08-23 10:00:04 -0600
committerDerek Stevens <nilix@nilfm.cc>2021-08-23 10:00:04 -0600
commit4e92ed396de1f2d08fc0c3a3af852e3fd38ee4c0 (patch)
treebe5357408957a1a69dcb2a0eb9a351354cb0aaeb
first commit
-rw-r--r--.gitignore1
-rwxr-xr-xmail2mms.sh57
2 files changed, 58 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1f89d9f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.config
diff --git a/mail2mms.sh b/mail2mms.sh
new file mode 100755
index 0000000..e431d37
--- /dev/null
+++ b/mail2mms.sh
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+# Send an MMS message to your phone when new emails come in.
+# The message header will have the number of new mails in the subject,
+# the From and Subject fields of up to the most recent 3 new mails,
+# and 'and more...' if there are more than three new mails
+# Assumes you have a maildir inbox on this machine;
+# you can use offlineimap or similar to sync recent mail to a maildir
+
+# import the config file ./.config
+# addr=<the address the notification will appear to be sent from>
+# phone=<your phone number in email address form (eg, 9876543210@mms.att.net)>
+# inbox=<the location of the maildir folder corresponding to the inbox>
+# smtp_server=<the address and port (address:port) of your smtp server>
+# smtp_user=<the username you use on your smtp server>
+# smtp_password<the password to login to the smtp server>
+
+. ./.config
+
+if ! pgrep offlineimap; then
+ offlineimap &
+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
+ echo "$(summary)" \
+ | mail -r nilix@nilfm.cc \
+ -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
+ oldnew=${newnew}
+ sleep 2m
+done