mrep: Set From header according to To/Cc/Bcc header

If any of the address contained in the aforementioned headers matches an
address configured in the Reply-From header in mblaze-profile(5).

Without this change, mrep(1) uses the mail address configured as
Local-Mailbox for the From header. While generally desirable, I use
different mail addresses for different proposes. As such, I do not
want to reply to mails I received through my work address with my
private email address.
pull/173/head
Sören Tempel 4 years ago
parent 3663d7365b
commit 4e4dcdf1ca

@ -44,6 +44,9 @@ to recognize messages sent to you.
A comma-separated list of mail addresses that also belong to you, for
.Xr mscan 1
to recognize messages sent by or directly to you.
.It Li Reply-From\&:
A comma-separated list of mail addresses that are automatically used for
the From header in a reply if present in the Cc, To, or Bcc header.
.It Li FQDN\&:
The fully qualified domain name used for
.Li Message\&-Id\&:

15
mcom

@ -15,6 +15,11 @@ notmine() {
grep -Fv -e "$mine"
}
replyfrom() {
addrs="$(maddr -a -h reply-from: "$MBLAZE/profile")"
grep -F -e "$addrs"
}
ouniq() {
awk '!seen[$0]++'
}
@ -356,7 +361,15 @@ fi
msed "/body/d" /dev/stdin
fi | sed '/^$/d'
printf 'Subject: Re: %s\n' "$(COLUMNS=10000 mscan -f '%S' "$1")"
from=$(mhdr -h local-mailbox "$MBLAZE/profile")
addr=$(maddr -a -h to:cc:bcc: "$1" | replyfrom | head -n1)
if [ -n "$addr" ]; then
from=$(maddr -h reply-from "$MBLAZE/profile" | grep -Fi "<$addr>" | head -n1)
fi
if [ -z "$from" ]; then
from=$(mhdr -h local-mailbox "$MBLAZE/profile")
fi
[ "$from" ] && printf 'From: %s\n' "$from"
mid=$(mhdr -h message-id "$1")
if [ "$mid" ]; then

Loading…
Cancel
Save