|
@@ -8,16 +8,6 @@ trap cleanup EXIT
|
|
|
|
|
|
cd "${WD}"
|
|
|
|
|
|
-declare -A GROUPALIASES=(
|
|
|
- ["cropswap@shandan.one"]="Crop Swap Notices"
|
|
|
- ["cropswap-members@shandan.one"]="Crop Swap Members"
|
|
|
-)
|
|
|
-in_group_aliases(){
|
|
|
- for key in "${!GROUPALIASES[@]}"; do
|
|
|
- [ "${key}" == "${1}" ] && return 0
|
|
|
- done
|
|
|
- return 1
|
|
|
-}
|
|
|
CROPSWAPARCHIVE=cropswap-archive@shandan.one
|
|
|
ITER_SUBS=/opt/cropswap/gdbm-iter-subscriptions.py
|
|
|
MIME_INJECT=/opt/cropswap/mime-inject.py
|
|
@@ -28,30 +18,40 @@ if ((DEBUG != 0)); then
|
|
|
fi
|
|
|
|
|
|
mk_subject(){
|
|
|
- subject="$(cat subject)"
|
|
|
+ subject="$(reformail -c -x "Subject:")"
|
|
|
if [ "${subject/\[${SUBJECT}\]/}" == "${subject}" ]; then
|
|
|
subject="[${SUBJECT}] ${subject## }"
|
|
|
fi
|
|
|
echo "${subject}"
|
|
|
}
|
|
|
-
|
|
|
-tee >(reformail -c -x "Subject:" >subject) original | "${MIME_INJECT}" "${MAILGROUP}" | reformime -s1 -e > body
|
|
|
-reformail \
|
|
|
- -X "Date:" \
|
|
|
- -X "MIME-Version:" \
|
|
|
- -X "Subject:" \
|
|
|
- -X "Content-Type:" \
|
|
|
-< original | reformail \
|
|
|
- -U "MIME-Version:" \
|
|
|
- -U "Content-Type:" | reformail \
|
|
|
- -I "Subject: $(mk_subject)" \
|
|
|
-| if in_group_aliases "${MAILGROUP}"; then reformail \
|
|
|
- -I "List-Id: $MAILGROUP" \
|
|
|
- -I "List-Unsubscribe: <mailto:$MAILGROUP?subject=[UNSUBSCRIBE]>" \
|
|
|
- -I "List-Subscribe: <mailto:$MAILGROUP?subject=[SUBSCRIBE]>" \
|
|
|
- -I "List-Post: <mailto:$MAILGROUP>" \
|
|
|
- -I "List-Unsubscribe-Post: List-Unsubscribe=One-Click"
|
|
|
-else cat -; fi | cat - body > mail
|
|
|
+mk_headers(){
|
|
|
+ subject="$(reformail \
|
|
|
+ -X "Date:" \
|
|
|
+ -X "MIME-Version:" \
|
|
|
+ -X "Subject:" \
|
|
|
+ -X "Content-Type:" \
|
|
|
+ | tee >(
|
|
|
+ reformail \
|
|
|
+ -U "MIME-Version:" \
|
|
|
+ -U "Content-Type:" \
|
|
|
+ | mk_list_headers > headers
|
|
|
+ ) | mk_subject)"
|
|
|
+ reformail -I "Subject: $subject" < headers
|
|
|
+}
|
|
|
+mk_list_headers(){
|
|
|
+ if [ -n "$REPLYTO" ]; then
|
|
|
+ reformail -I "Reply-To: $REPLYTO"
|
|
|
+ return
|
|
|
+ fi
|
|
|
+ reformail \
|
|
|
+ -I "List-Id: $MAILGROUP" \
|
|
|
+ -I "List-Unsubscribe: <mailto:$MAILGROUP?subject=[UNSUBSCRIBE]>" \
|
|
|
+ -I "List-Subscribe: <mailto:$MAILGROUP?subject=[SUBSCRIBE]>" \
|
|
|
+ -I "List-Post: <mailto:$MAILGROUP>" \
|
|
|
+ -I "List-Unsubscribe-Post: List-Unsubscribe=One-Click"
|
|
|
+}
|
|
|
+tee >(mk_headers > mail) | "${MIME_INJECT}" "${REPLYTO:-$MAILGROUP}" | reformime -s1 -e > body
|
|
|
+cat body >> mail
|
|
|
|
|
|
declare -A SUBSCRIBED
|
|
|
declare -a actions
|