mirror of
https://github.com/mailscope/kumomta.git
synced 2026-08-21 03:48:17 +00:00
201 lines
4.5 KiB
Markdown
201 lines
4.5 KiB
Markdown
# The HeaderMap Object
|
|
|
|
{{since('2025.10.06-5ec871ab')}}
|
|
|
|
Represents the parsed state of the set of headers in a [MimePart](../mimepart/index.md).
|
|
|
|
The headermap provides access to the headers and allows modification of the set of headers.
|
|
|
|
!!! note
|
|
While the map allows modification of the set of headers, the individual
|
|
header objects that it returns are copies of the parsed headers; if you
|
|
wish to modify the headers, you must explicitly use the methods of the
|
|
header map to apply those changes to the headermap.
|
|
|
|
!!! info
|
|
Printing or otherwise explicitly converting a `HeaderMap` object as a string
|
|
will produce the RFC 5322 representation of the headers contained in that map.
|
|
|
|
## Associated Data Types
|
|
|
|
The following data types/representations are associated with both the
|
|
`HeaderMap` and `Header` objects that can be obtained through it. `HeaderMap`
|
|
provides accessors for fields by name/type/function which return the following
|
|
data types from the getter functions (eg: [headermap:to](to.md)) and accept
|
|
them as parameters in the setter functions (eg: [headermap:set_to](set_to.md)).
|
|
|
|
### Address
|
|
|
|
Represents an email address, which can be either a [Mailbox](index.md#mailbox)
|
|
or a [Group](index.md#group), both shown below.
|
|
|
|
```lua
|
|
-- This is an example of a `Mailbox`, which is valid as an `Address`
|
|
local address = {
|
|
name = 'John Smith',
|
|
address = {
|
|
local_part = 'john.smith',
|
|
domain = 'example.com',
|
|
},
|
|
}
|
|
```
|
|
|
|
### AddressList
|
|
|
|
Represents a list of `Address`es (either `Mailbox` or `Group`); it is
|
|
mapped to lua as an array style table listing out the addresses. A list can
|
|
have 0 or more entries.
|
|
|
|
```lua
|
|
local addresses = {
|
|
-- The first entry is a mailbox
|
|
{
|
|
name = 'John Smith',
|
|
address = {
|
|
local_part = 'john.smith',
|
|
domain = 'example.com',
|
|
},
|
|
},
|
|
|
|
-- The second entry is also a mailbox
|
|
{
|
|
name = 'Joe Bloggs',
|
|
address = {
|
|
local_part = 'joe.bloggs',
|
|
domain = 'example.com',
|
|
},
|
|
},
|
|
|
|
-- The third entry is a group
|
|
{
|
|
name = 'The A Team',
|
|
entries = {
|
|
{
|
|
name = 'Bodie',
|
|
address = {
|
|
local_part = 'bodie',
|
|
domain = 'example.com',
|
|
},
|
|
},
|
|
{
|
|
address = {
|
|
local_part = 'doyle',
|
|
domain = 'example.com',
|
|
},
|
|
},
|
|
{
|
|
address = {
|
|
local_part = 'tiger',
|
|
domain = 'example.com',
|
|
},
|
|
},
|
|
{
|
|
address = {
|
|
local_part = 'the.jewellery.man',
|
|
domain = 'example.com',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
```
|
|
|
|
### Group
|
|
|
|
Represents the group addressing syntax; groups are typically shown, by default,
|
|
in the MUA collapsed down to just the `name` portion, making the overall
|
|
distribution list less overwhelming in its default presentation.
|
|
|
|
```lua
|
|
-- This is an example of a `Group`, which is valid as an `Address`
|
|
local group = {
|
|
name = 'The A Team', -- the display name for the group
|
|
entries = { -- `entries`, rather than `address` is what distinguishes this from a mailbox
|
|
{
|
|
name = 'Bodie',
|
|
address = {
|
|
local_part = 'bodie',
|
|
domain = 'example.com',
|
|
},
|
|
},
|
|
{
|
|
address = {
|
|
local_part = 'doyle',
|
|
domain = 'example.com',
|
|
},
|
|
},
|
|
{
|
|
address = {
|
|
local_part = 'tiger',
|
|
domain = 'example.com',
|
|
},
|
|
},
|
|
{
|
|
address = {
|
|
local_part = 'the.jewellery.man',
|
|
domain = 'example.com',
|
|
},
|
|
},
|
|
},
|
|
}
|
|
```
|
|
|
|
### Mailbox
|
|
|
|
Represents an individual mailbox (email address)
|
|
|
|
```lua
|
|
-- This is an example of a `Mailbox`
|
|
local mailbox = {
|
|
name = 'John Smith', -- an optional string holding the display name
|
|
address = {
|
|
local_part = 'john.smith',
|
|
domain = 'example.com',
|
|
},
|
|
}
|
|
```
|
|
|
|
### MailboxList
|
|
|
|
Represents a list of `Mailbox`es; it is mapped to lua as an array style table
|
|
listing out the mailboxes. A list can have 0 or more entries.
|
|
|
|
```lua
|
|
local mailboxes = {
|
|
-- The first entry
|
|
{
|
|
name = 'John Smith',
|
|
address = {
|
|
local_part = 'john.smith',
|
|
domain = 'example.com',
|
|
},
|
|
},
|
|
|
|
-- The second entry
|
|
{
|
|
name = 'Joe Bloggs',
|
|
address = {
|
|
local_part = 'joe.bloggs',
|
|
domain = 'example.com',
|
|
},
|
|
},
|
|
}
|
|
```
|
|
|
|
### MimeParams
|
|
|
|
Represents a structured RFC 2047 (MIME) header. For example, a header like
|
|
`Content-Type: text/plain; charset=utf-8` would be returned as:
|
|
|
|
```lua
|
|
local mime_params = {
|
|
value = 'text/plain',
|
|
parameters = {
|
|
charset = 'utf8',
|
|
},
|
|
}
|
|
```
|
|
|
|
|
|
## Available Fields and Methods { data-search-exclude }
|