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 object
  • settings {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 object
  • settings {table}: Table with the following fields:

Returns:

  • {table}: modified message state similar to other modification functions

Back to module description.

Back to top.