mirror of
https://github.com/mjl-/mox.git
synced 2025-07-12 17:44:35 +03:00
add Content-Disposition and Filename to the payload of incoming webhooks
for each message part. The ContentDisposition value is the base value without header key/value parameters. the Filename field is the likely filename of the part. the different email clients encode filenames differently. there is a standard mime mechanism from rfc 2231. and there is the q/b-word-encoding from rfc 2047. instead of letting users of the webhook api deal with those differences, we provide just the parsed filename. for issue #258 by morki, thanks for reporting!
This commit is contained in:
@ -796,13 +796,18 @@ func Incoming(ctx context.Context, log mlog.Log, acc *store.Account, messageID s
|
||||
|
||||
log.Debug("composing webhook for incoming message")
|
||||
|
||||
structure, err := webhook.PartStructure(log, &part)
|
||||
if err != nil {
|
||||
return fmt.Errorf("parsing part structure: %v", err)
|
||||
}
|
||||
|
||||
isIncoming = true
|
||||
var rcptTo string
|
||||
if m.RcptToDomain != "" {
|
||||
rcptTo = m.RcptToLocalpart.String() + "@" + m.RcptToDomain
|
||||
}
|
||||
in := webhook.Incoming{
|
||||
Structure: webhook.PartStructure(&part),
|
||||
Structure: structure,
|
||||
Meta: webhook.IncomingMeta{
|
||||
MsgID: m.ID,
|
||||
MailFrom: m.MailFrom,
|
||||
|
@ -82,6 +82,9 @@ func TestHookIncoming(t *testing.T) {
|
||||
tcheck(t, err, "decode incoming webhook")
|
||||
in.Meta.Received = in.Meta.Received.Local() // For TZ UTC.
|
||||
|
||||
structure, err := webhook.PartStructure(pkglog, &part)
|
||||
tcheck(t, err, "part structure")
|
||||
|
||||
expIncoming := webhook.Incoming{
|
||||
From: []webhook.NameAddress{{Address: "mjl@mox.example"}},
|
||||
To: []webhook.NameAddress{{Address: "mjl@mox.example"}},
|
||||
@ -92,7 +95,7 @@ func TestHookIncoming(t *testing.T) {
|
||||
Subject: "test",
|
||||
Text: "test email\n",
|
||||
|
||||
Structure: webhook.PartStructure(&part),
|
||||
Structure: structure,
|
||||
Meta: webhook.IncomingMeta{
|
||||
MsgID: m.ID,
|
||||
MailFrom: m.MailFrom,
|
||||
|
Reference in New Issue
Block a user