Files
kumomta/docs/reference/events/http_message_generated.md
2023-03-14 18:53:47 -07:00

34 lines
1.2 KiB
Markdown

# `kumo.on('http_message_generated', function(message))`
Called by the HTTP injection API endpoint after generating a message, but prior
to injecting it into the queue.
The event handler will be passed a [Message](../message/index.md) object.
The HTTP injector does not add a `Received` header, but it will pre-set the
following meta values in the message:
* `"http_auth"` - will hold either the authenticated username or the peer IP
address that satisfied the authentication check for the endpoint.
This event is the best place to carry out a number of important policy
decisions:
* DKIM signing via [message:dkim_sign](../message/dkim_sign.md).
* Assigning the `"campaign"`, `"tenant"` and/or `"queue"` meta values via [msg:set_meta](../message/set_meta.md)
You may use [kumo.reject](../kumo/reject.md) to raise an error to prevent this
message from being queued for delivery.
```lua
kumo.on('http_message_generated', function(msg)
local signer = kumo.dkim.rsa_sha256_signer {
domain = msg:from_header().domain,
selector = 'default',
headers = { 'From', 'To', 'Subject' },
key = 'example-private-dkim-key.pem',
}
msg:dkim_sign(signer)
end)
```