Skip to content

message:import_scheduling_header(HEADER_NAME, REMOVE)

Reads the header specified and attempts to parse it as JSON-encoded version of the message:set_scheduling() parameters. If successful, it will call message:set_scheduling() with that value, and if REMOVE is set to true, will remove the header from the message.

The return value of message:import_scheduling_header is:

  • A lua table representation of the scheduling parameters, or nil if the specified header was not present. (Since: Version 2025.03.19-1d3f1f67)
  • nil in prior versions of KumoMTA.

If the header is present, but has invalid contents the behavior will be:

  • An error will be raised explaining the issue. (Since: Version 2025.03.19-1d3f1f67)
  • No error indication will be given and no errors will be logged in prior versions of KumoMTA.

For example, given this message:

X-Schedule: {"dow":"Mon,Wed","tz":"America/Phoenix","start":"09:00:00","end":"17:00:00"}
Subject: hello

This message should only be delivered during working hours
in Phoenix on Mondays or Wednesdays.

this policy script will parse and remove that header, and apply the scheduling constraints:

kumo.on('smtp_server_message_received', function(msg)
  msg:import_scheduling_header('X-Schedule', true)
end)