Files
kumomta/docs/reference/events/smtp_server_message_deferred_inject.md
T
Wez Furlong 42bf5c5e61 docs: adjust reference to improve search terms
We've been hoping that mkdocs-material will ship the much anticipated
search enhancements for some time, but it's time to recognize that
we need to do something to improve the search results with how
things work right now.

This is a big commit that changes the titles of the various pages
from the code-annotated synopsis to just the name of the function.

This makes it much easier now to match things like `kumo.reject`
directly, but `reject` remains awkward to find.

I think this is the best that we can do at this time.

A few functions have been annotated with the `status: deprecated` to
show as deprecated in the toc/nav (shows with a little trash can next
to the name).
2025-05-16 14:02:19 -07:00

1.8 KiB

smtp_server_message_deferred_inject

kumo.on(
  'smtp_server_message_deferred_inject',
  function(message, conn_meta) end
)

{{since('2025.01.23-7273d2bc')}}

When deferred_queue is enabled, this is called by after accepting the message data and responding to the client.

If the client issued multiple "RCPT TO" commands in the same transaction, each one will result in a separate message being created, and this event will be triggered for each of them.

The event handler will be passed a Message object. The Message will always have a Received header prepended that captures trace information about the sender.

The conn_meta parameter represents the connection metadata, but it is synthesized from the metadata in the message. It is provided as a type-compatible way to reference the metadata for functions like SPF and DMARC that accept connection metadata. While it is possible to update/set values in this metadata object, they will not persist once the smtp_server_message_deferred_inject event handler returns. See Connection Metadata for more information.

You can and should use this event to process things that you would normally have done in the smtp_server_message_received event handler, such as:

kumo.on('smtp_server_message_deferred_inject', 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)