#!/bin/sh -u # Usage: # ./send-email-log.sh filebot -script fn:sysinfo # required user configuration SMTP_SERVER="smtps://smtp.gmail.com:465" SMTP_USER="@gmail.com" SMTP_PASS="" # optional user configuration MAIL_FROM="$SMTP_USER" MAIL_TO="$SMTP_USER" # create temporary files LOG_FILE=$(mktemp) MAIL_FILE=$(mktemp) # delete temporary files on exit function finish { rm "$LOG_FILE" "$MAIL_FILE" } trap finish EXIT # run command and capture console output (time "$@") > "$LOG_FILE" 2>&1 if [ $? -eq 0 ]; then STATUS="OK" # send email only if the command failed (disabled by default) # exit 0 else STATUS="FAILURE" fi function escapeHTML { # escape & < > " and ' and replace them with html entities sed 's/&/\&/g; s//\>/g; s/"/\"/g; s/'"'"'/\'/g' } echo "Content-Type: text/html; charset=utf-8 Subject: [$STATUS] $1 From: \"$1\" <$MAIL_FROM> To: $MAIL_TO Date: $(date -R)

Execute

$(echo "$@" | escapeHTML)

Output

$(cat "$LOG_FILE" | escapeHTML)
" >> "$MAIL_FILE" # print raw email message # cat "$MAIL_FILE" # send email curl --mail-from "$MAIL_FROM" --mail-rcpt "$MAIL_TO" --upload-file "$MAIL_FILE" --url "$SMTP_SERVER" --ssl-reqd --user "$SMTP_USER:$SMTP_PASS"