diff options
Diffstat (limited to 'lib/hooks/mail-sent.go')
-rw-r--r-- | lib/hooks/mail-sent.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/hooks/mail-sent.go b/lib/hooks/mail-sent.go new file mode 100644 index 00000000..59edafa2 --- /dev/null +++ b/lib/hooks/mail-sent.go @@ -0,0 +1,31 @@ +package hooks + +import ( + "fmt" + + "git.sr.ht/~rjarry/aerc/config" + "github.com/emersion/go-message/mail" +) + +type MailSent struct { + Account string + Header *mail.Header +} + +func (m *MailSent) Cmd() string { + return config.Hooks.MailSent +} + +func (m *MailSent) Env() []string { + from, _ := mail.ParseAddress(m.Header.Get("From")) + env := []string{ + fmt.Sprintf("AERC_ACCOUNT=%s", m.Account), + fmt.Sprintf("AERC_FROM_NAME=%s", from.Name), + fmt.Sprintf("AERC_FROM_ADDRESS=%s", from.Address), + fmt.Sprintf("AERC_SUBJECT=%s", m.Header.Get("Subject")), + fmt.Sprintf("AERC_TO=%s", m.Header.Get("To")), + fmt.Sprintf("AERC_CC=%s", m.Header.Get("Cc")), + } + + return env +} |