Module lua_mime
Module lua_mime
This module contains helper functions to modify mime parts
Brief content:
Functions:
| Function | Description | 
|---|---|
lua_mime.add_text_footer(task, html_footer, text_footer) | Adds a footer to all text parts in a message. | 
lua_mime.multipattern_text_replace(task, mp, replacements) | Replaces text according to multipattern matches. | 
lua_mime.modify_headers(task, {add = {hname = {value = 'value', order = 1}}, remove = {hname = {1,2}}}) | Adds/removes headers both internal and in the milter reply. | 
lua_mime.message_to_ucl(task, [stringify_content]) | Exports a message to an ucl object. | 
lua_mime.message_to_ucl_schema() | Returns schema for a message to verify result/document fields. | 
lua_mime.remove_attachments(task, settings) | Removes all attachments from a message, keeping only text parts. | 
lua_mime.get_displayed_text_part(task) | Returns the most relevant displayed content from an email. | 
lua_mime.get_distinct_text_parts(task) | Returns the list of parts that are visible or have a distinct content. | 
lua_mime.anonymize_message(task, settings) | Anonymizes message content by replacing sensitive data. | 
Functions
The module lua_mime defines the following functions.
Function lua_mime.add_text_footer(task, html_footer, text_footer)
Adds a footer to all text parts in a message. It returns a table with the following fields:
- out: new content (body only)
 - need_rewrite_ct: boolean field that means if we must rewrite content type
 - new_ct: new content type (type => string, subtype => string)
 - new_cte: new content-transfer encoding (string)
 
Parameters:
No parameters
Returns:
No return
Back to module description.
Function lua_mime.multipattern_text_replace(task, mp, replacements)
Replaces text according to multipattern matches. It returns a table with the following fields:
- out: new content (body only)
 - need_rewrite_ct: boolean field that means if we must rewrite content type
 - new_ct: new content type (type => string, subtype => string)
 - new_cte: new content-transfer encoding (string)
 
Parameters:
No parameters
Returns:
No return
Back to module description.
Function lua_mime.modify_headers(task, {add = {hname = {value = 'value', order = 1}}, remove = {hname = {1,2}}})
Adds/removes headers both internal and in the milter reply Mode defines to be compatible with Rspamd <=3.2 and is the default (equal to 'compat')
Parameters:
No parameters
Returns:
No return
Back to module description.
Function lua_mime.message_to_ucl(task, [stringify_content])
Exports a message to an ucl object
Parameters:
No parameters
Returns:
No return
Back to module description.
Function lua_mime.message_to_ucl_schema()
Returns schema for a message to verify result/document fields
Parameters:
No parameters
Returns:
No return
Back to module description.
Function lua_mime.remove_attachments(task, settings)
Removes all attachments from a message, keeping only text parts
- keep_images: boolean, whether to keep inline images (default: false)
 - min_text_size: number, minimum text part size to keep (default: 0)
 - max_text_size: number, maximum text part size to keep (default: inf)
 - out: new content (body only)
 
Parameters:
task {task}: Rspamd task objectsettings {table}: Table with the following fields:
Returns:
{table}: modified message state similar to other modification functions:
Back to module description.
Function lua_mime.get_displayed_text_part(task)
Returns the most relevant displayed content from an email
Parameters:
task {task}: Rspamd task object
Returns:
{text_part}: a selected part
Back to module description.
Function lua_mime.get_distinct_text_parts(task)
Returns the list of parts that are visible or have a distinct content
Parameters:
task {task}: Rspamd task object
Returns:
- array of {text_part} a selected part
 
Back to module description.
Function lua_mime.anonymize_message(task, settings)
Anonymizes message content by replacing sensitive data
- strip_attachments: boolean, whether to strip all attachments
 - custom_header_process: table of header_name => function(orig_header) pairs
 
Parameters:
task {task}: Rspamd task objectsettings {table}: Table with the following fields:
Returns:
{table}: modified message state similar to other modification functions
Back to module description.
Back to top.