aboutsummaryrefslogtreecommitdiffhomepage
path: root/bin
diff options
context:
space:
mode:
authorHsieh Chin Fan <pham@topo.tw>2025-02-01 12:49:44 +0800
committerHsieh Chin Fan <pham@topo.tw>2025-02-01 12:49:51 +0800
commit12d0f669278148d0bd4185d99e328847eb3766c5 (patch)
treebd03b72b7b5223eee2fb19485b947906edbb7734 /bin
parent86efd963ef3a8281f7c4a7c8e4e7310afdea43b4 (diff)
Update
Diffstat (limited to 'bin')
-rwxr-xr-xbin/mail/deliver.sh40
1 files changed, 25 insertions, 15 deletions
diff --git a/bin/mail/deliver.sh b/bin/mail/deliver.sh
index bd5bd82..607b6b2 100755
--- a/bin/mail/deliver.sh
+++ b/bin/mail/deliver.sh
@@ -2,21 +2,9 @@
2 2
3# Deliver incoming mail to proper mailbox 3# Deliver incoming mail to proper mailbox
4# TODO image/audio mail part 4# TODO image/audio mail part
5mail_date="$(date --rfc-email)"
5 6
6# log each delivery {{{
7log=$(grep -rlE 'From:\s+<?MDA' ~/Maildir/cur | head -1)
8if [ -z $log ]; then
9 log=~/Maildir/cur/deliver.log
10 <<-HEADER cat >$log
11 From: MDA
12 Content-Type: text/plain; charset=UTF-8
13 Subject: Delivery Log
14
15 HEADER
16fi
17# }}}
18# shell opt/trap {{{ 7# shell opt/trap {{{
19exec 2>>$log
20shopt -s nocasematch extglob 8shopt -s nocasematch extglob
21 9
22# update index for dovecot 10# update index for dovecot
@@ -27,6 +15,25 @@ tmp_mailbox=$(mktemp -d); mkdir -p ${tmp_mailbox}/{tmp,new,cur}
27cat >${tmp_mailbox}/cur/mail 15cat >${tmp_mailbox}/cur/mail
28trap 'rm -rf ${tmp_mailbox}' EXIT 16trap 'rm -rf ${tmp_mailbox}' EXIT
29# }}} 17# }}}
18# log each delivery {{{
19log=~/Maildir/cur/deliver.log
20exec 2>>$log
21
22logfile=$(grep -rlE 'From:\s+<?MDA' ~/Maildir/cur | head -1)
23if [ -z "$logfile" ]; then
24 <<-HEADER cat >&2
25 From: MDA <pham@topo.tw>
26 Date: ${mail_date}
27 Message-ID: <deliver.log>
28 Content-Type: text/plain; charset=UTF-8
29 Subject: Delivery Log
30
31 HEADER
32else
33 mv $logfile $log 2>/dev/null
34 sed -i "1,/^$/ s/^Date: .*/Date: ${mail_date}/" $log
35fi
36# }}}
30# vars about message {{{ 37# vars about message {{{
31MAIL="$(decodemail ${tmp_mailbox})" 38MAIL="$(decodemail ${tmp_mailbox})"
32# TODO process multi-line header field 39# TODO process multi-line header field
@@ -51,9 +58,10 @@ set_stdout() {
51print_mail() { 58print_mail() {
52 if [ "$private" = true ]; then 59 if [ "$private" = true ]; then
53 <<-MAIL cat 60 <<-MAIL cat
54 From: me 61 From: me <pham@topo.tw>
55 Date: $(date --rfc-email) 62 Date: ${mail_date}
56 Message-ID: ${Message_ID} 63 Message-ID: ${Message_ID}
64 Content-Type: text/plain; charset=UTF-8
57 Self: true 65 Self: true
58 Subject: ${heading} 66 Subject: ${heading}
59 67
@@ -140,3 +148,5 @@ set_stdout && print_mail
140 148
141# log to stderr 149# log to stderr
142echo -e ${date} ${mailbox:-INBOX} '\t' "${heading:-${SUBJECT}}" >&2 150echo -e ${date} ${mailbox:-INBOX} '\t' "${heading:-${SUBJECT}}" >&2
151
152# vim:fdm=marker fdl=0