From de2be5439dab0bb357405b1d0e87ea8138dd630e Mon Sep 17 00:00:00 2001 From: luukvbaal <31730729+luukvbaal@users.noreply.github.com> Date: Fri, 31 May 2019 00:02:48 +0200 Subject: [PATCH] perl decoding --- bin/mailsync | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/bin/mailsync b/bin/mailsync index 1ef2155..44c9756 100755 --- a/bin/mailsync +++ b/bin/mailsync @@ -28,13 +28,9 @@ syncandnotify() { if [ "$newcount" -gt "0" ]; then notify "$acc" "$newcount" & for file in $new; do - # Extract subject and sender from mail (room for improvement). - subject=$(grep "^Subject: " "$file" | sed 's/Subject: //' | head -n4) - from=$(grep "^From: " "$file" | awk '{ $1=""; $NF=""; print $0 }' | tr -d "\"\'\<\>" | sed 's/^ \(.*\) $/\1/') - substring="=?" - # Some html emails contain weird Subject and/or Sender formatting, in which case the html tag content is used (room for improvement). - [ "${subject#*$substring}" != "$subject" ] && subject=$(tr '\n' ' ' < "$file" | sed 's/.*\(.*\)<\/title>.*/\1/') - [ "${from#*$substring}" != "$from" ] && from=$(grep ^"From: " "$file" | sed 's/.*<\(.*\)>.*/\1/') + # Extract subject and sender from mail. + from=$(grep "^From: " "$file" | perl -CS -MEncode -ne 'print decode("MIME-Header", $_)' | awk '{ $1=""; $NF=""; print $0 }' | tr -d "\"\'\<\>" | sed 's/^ \(.*\) $/\1/') + subject=$(grep "^Subject: " "$file" | perl -CS -MEncode -ne 'print decode("MIME-Header", $_)' | sed 's/Subject: //') notify-send "📧$from:" "$subject" & done fi