mirror of
https://github.com/jhillyerd/inbucket.git
synced 2025-12-18 10:07:02 +00:00
before stored example
@@ -35,6 +35,51 @@ function inbucket.after.message_deleted(msg)
|
|||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Event trigger: before message stored
|
||||||
|
|
||||||
|
This event fires after Inbucket has accepted a message, but before it has been stored.
|
||||||
|
|
||||||
|
Changes the destination mailbox to `test` for two specific recipients.
|
||||||
|
|
||||||
|
```lua
|
||||||
|
local logger = require("logger")
|
||||||
|
|
||||||
|
-- Original mailbox name on left, new on right.
|
||||||
|
local mailbox_mapping = {
|
||||||
|
["swaks"] = "test",
|
||||||
|
["james-test"] = "test",
|
||||||
|
}
|
||||||
|
|
||||||
|
function inbucket.before.message_stored(msg)
|
||||||
|
local made_changes = false
|
||||||
|
local new_mailboxes = {}
|
||||||
|
|
||||||
|
-- Loop over original recipient mailboxes for this message, building up list
|
||||||
|
-- of new_mailboxes.
|
||||||
|
for index, orig_box in ipairs(msg.mailboxes) do
|
||||||
|
local new_box = mailbox_mapping[orig_box]
|
||||||
|
if new_box then
|
||||||
|
logger.info(string.format("Mapping mailbox %q to %q", orig_box, new_box), {})
|
||||||
|
new_mailboxes[index] = new_box
|
||||||
|
made_changes = true
|
||||||
|
else
|
||||||
|
-- No match, continue using the original value for this mailbox.
|
||||||
|
new_mailboxes[index] = orig_box
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if made_changes then
|
||||||
|
-- Recipient mailbox list was changed, return updated msg.
|
||||||
|
logger.info(string.format("New mailboxes: %s", table.concat(new_mailboxes, ", ")), {})
|
||||||
|
msg.mailboxes = new_mailboxes
|
||||||
|
return msg
|
||||||
|
end
|
||||||
|
|
||||||
|
-- No changes, return nil to signal inbucket to use original msg.
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
## Event trigger: after message stored
|
## Event trigger: after message stored
|
||||||
|
|
||||||
Prints metadata of stored messages to STDOUT:
|
Prints metadata of stored messages to STDOUT:
|
||||||
|
|||||||
Reference in New Issue
Block a user