Notification Viewer Technical Documentation

De Trustedbird Client Wiki
English | Français

> Documentation > Add-on: Notification Viewer > Technical Documentation


Notification data management

When a message is sent, if delivery notifications have been requested, notification data are stored in a local Sqlite database notifications created by the add-on. Each message with notification requests is identified in the database with its unique Message-ID header.

When a notification is received, its data are added to the notifications database in original message's entry. Original message is identified by different ways depending on the notification type:

  • MDN: with the Original-Message-ID header of the notification;
  • DSN: with the Message-ID header in the copy of the headers of the original message attached to the notification.

MILIMAIL Specifications Corrélation des avis v08 schéma EN v1.png

Notifications Sqlite database is used to store notification data in a persistent way when messages are moved from/to IMAP folders (which doesn't happen with data stored in Thunderbird's internal message databases). Sqlite database is also useful to display consistent information when messages are duplicated.

Thunderbird's internal message databases are used to store an exported view of Sqlite data to be displayed in the interface.

Notification requests

When a message is sent, DSN request is transmitted at SMTP level. Notification request info is not stored in the message and therefore the add-on is not able to identify a DSN request.

It is necessary to add a X‑DSN: yes header in the message in order to identify the request. Only success DSN requests are taken into account, because the purpose of the add-on is to count received notifications (obviously, all types of DSN responses are identified and displayed).

In order to identify MDN requests, the header Disposition‑Notification‑To is already available in sent message.

Delivery delay

A delivery delay can be set up in minutes for all messages with a DSN success request.

A background task checks if elapsed time since sending time has reached maximum delivery delay for messages whose all DSN responses have not been received. A visual information for expired messages is displayed in message list.