Blee Panel Controls: Show-All | Overview | Content | (1) | S&Q | Save | Quit | Bury
Panel Links: Blee Panel
See Also (Repo URls): mtdt | mailing | distribution | names | share | track
MTDT (Mail Templating, Distribution and Tracking) is part of Blee. Blee (ByStar Libre-Halaal Emacs Environment) serves as the usage environment of BISOS (ByStar Internet Services OS). BISOS forms the foundation of the “Libre-Halaal ByStar Digital Ecosystem.” ByStar is rooted in the model of proper governance of polyexistentials which rejects the Western Intelectual Propoerty Rights (IPR) regime. For a comprehensive description, please refer to the book: ‘The Nature of Polyexistentials’ – https://github.com/bxplpc/120033.
MTDT is developed in elisp with COMEEGA (Collaborative Org-Mode Enhanced Emacs Generalized Authorship). Think of COMEEGA as inverse of literate programming. Please follow Blee-COMEEGA conventions when editing MTDT elisp files.
MTDT augments the Emacs email environment (Gnus) by providing templates for mailings and distributions. You can
think of MTDT as a Libre-Halaal Convivial equivalent of Constant Contact for Emacs.
MTDT allows you to create Mailing Tempaltes with content in 1) Plain Text, 2) Org-Msg, 3) LaTeX and 4) Plain Html.
The Mailing Templates can then be used to Send or Distribute to Recipients.
Recipients can be derived from Names in address books such as BBDB3.
- Overview
- Abstract – Concepts and Terminoloy
- Abstract – Layering
- MTDT Installation
- MTDT Features Summary
- Blee Panels and Documentation
- MTDT Usage and Examples
- MTDT-Layering, Packages URLs and Overview
Emacs has a very rich email environment. The scope of Emacs email environment is primarily that of sending, receiving, processing, searching, archiving and integration with address books, org-mode and other global minor-modes. Mail Templating, Distribution and Tracking (MTDT) are currently not well supported. In the context of Email Marketting, in the proprietary world, things like SendGrid and Constant Contact have appeared on the scene. Such capabilities are best supported when they are integrated with the MUA. Hence, it does make sense to build much MTDT capabilities inside of emacs. Mass email distribution, email commencing and email templating have much overlap.
To talk about email in detail and precisely we need a rich and explicit vocabulary to refer to well defined concepts and abstractions. We use four sources for our vocabulary and concepts. 1) X.400 Specifications, 2) Internet Email RFCs Specifications, 3) Gnus Manuals, 4) Our own extenstions (see below).
MTDT exists on top of MARMEE and uses MARMEE facilities for sending and receiving email. See https://github.com/bisos-pip/marmee for details.
A Mailing-File is a partial or complete email that can be used to Compose a message. A Mailing-File can reside anywhere on the file system. A Mailing-File can become part of MTDT (internalized in MTDTD) by being Derived.
A <<Derived-Mailing>> always maps to a Mailing-File. A Derived-Mailing can then be used for Origination. There are four types of Mailing-Files, used for 4 different purposes.:
- CommenceMailing. No To Line, Incompleete Content, From, Subject and Signature.
- TemplateMailing. To Line + Incomplete Content, From, Subject and Signature.
- DistributionMailing. No To Line, Complete Content, From and Subject.
- MuaStencilMailing. MUA uses in Reply and Forward.
(1), (2) and (3) are used for Composition. (4) is used for Replys and Forwards.
A Mailing can be any of (1), (2), (3) or (4).
A Compose-Mailing can be any of (1), (2) or (3).
<<Compose>> is the act of starting to write a new email. Replying and Forwarding are distinct and different from Composing. Composition can be from scratch or through a Derived Mailing.
MTDT currently supports 4 different Compose-Frameworks for composing. These are 1) Plain Text, 2) Org-Msg, 3) LaTeX and 4) Html.
Mailings with Compose-Frameworks of (1) and (2) are always invoked as Native-Compose.
Mailings with Compose-Frameworks of (3) and (4)can be invoked as Native-Compose or External-Compose. Native-Compose of (3) and (4) allow for editing of headers but not body. External-Compose of (3) and (4) allow for editing of body and headers.
<<Origination>> is the act of starting a Compose, Reply or Forward.
A Mailing-Invocation is the act of invoking a relevant function to a Derived-Mailing.
A Mailing-Invocation is labled with Mailing-Inv-
For CommenceMailing and TemplateMailing and DistributionMailing
- Mailing-Inv-Compose (auto determination of Mailing-Inv-Native-Compose or Mailing-Inv-External-Compose)
- Mailing-Inv-Native-Compose
- Mailing-Inv-External-Compose (Copies the LaTeX environment)
With Selected-Recipients, for CommenceMailing and TemplateMailing and DistributionMailing
- Mailing-Inv-Dist-Compose
- Mailing-Inv-Dist-Native-Compose
- Mailing-Inv-Dist-External-Compose (Copies the LaTeX environment)
With Selected-Recipients, for DistributionMailing
- Mailing-Inv-Dist-Send
With Selected-Recipients-Forms-File, for DistributionMailing
- Mailing-Inv-Dist-Send
- Mailing-Inv-Dist-Compose
- Mailing-Inv-Dist-Dispatch (Based on DispatchControl, either Mailing-Inv-Dist-Send or Mailing-Inv-Dist-Compose )
The following Mailing Bufers are used.
- Mailing-Buffer — That of Mailing-File
- Compose-Buffer — The unsent-buffer used for Native or External Composition
- unsent-buffer — Traditional buffer used by emacs
- sent-buffer — After sending
Implemetation of MTDT is layered. Each layer is implemented as an Emacs package. See MTDT-Layering for details.
This is an overview of <<MTDT-Mailings Layer>>.
The primary concept of MTDT-Mailings is the X-Mailing-Name File. This is a file that contains a complete or a partial email. Both its headers and its body can then be customized by MTDT facilities. X-Mailing-Name File s contain some special headers that direct and customize operations of MTDT facilities. These MTDT Headers include:
- X-Mailing-Name: is a string that is used to internalize and identify the X-Mailing-Name File to MTDT. There is two-way and one-to-one mapping between these two. The Derive family of of functions of MTDT are used create this mapping. Once Derived, the X-Mailing-Name File can be accessed through its X-Mailing-Name:. X-Mailing-Name File can be anywhere in the file system and are not part of MTDT untill they are Derived.
- X-ComposeFwrk: specifies the framework (mode) to be used for handling the body of an X-Mailing-Name File.
When the body of the message is in org-mode, OrgMsg mode is used. Valid values of
- Plain Text, 2) Org-Msg, 3) LaTeX and 4) Plain Html.
See mailing ‘s Blee-Panel for details.
- X-MailingParams: specifies named parameters for use by MTDT.
- X-MailingParams: :extSrcBase <dirPathOrNil> specifies as to whether or not the body of the message is to be
considered External or Native. External only applies to X-ComposeFwrk: Org-Msg, LaTeX. For a
X-Mailing-Name File whose body was produced using external facilities such as LaTeX (lcntProc.sh), when
X-MailingParams: :extSrcBase <dirPath> is set, when sendingEnvironment is created, the entire directory of
X-Mailing-Name File is copied to the sendingEnvironment environemnt.
- X-MTDT-Customize: specifies a path to an elisp file, or a function that can run in the sendingEnvironment to customize both headers and body of the outgoing message.
See mailing ‘s Blee-Panel for details.
X-Mailing-Name File can be used for different purposes, including as a:
- CommenceMailing. 2) TemplateMailing. 3) DistributionMailing. 4) MuaStencilMailing.
The above types each have a Selected instance.
When a Selected mailing is Sent it first becomes an OutGoingMessage.
See mailing ‘s Blee-Panel for details.
| Header Name | Values | Implementation | Comments |
|---|---|---|---|
| X-MailingName | AnyText | b:mtdt:mailings.el | derive creates function name maping to mailingFile |
| X-MailingDoc | nil | ||
| X-MailingDoc | path | Informational - Path to file which created content | |
| X-ComposeFwrk | basic | b:mtdt:mailings.el | Plain Text |
| X-ComposeFwrk | orgMsg | b:mtdt:mailings.el | unsent buffer is to be in OrgMsg mode |
| X-ComposeFwrk | latex | b:mtdt:mailings.el | extSrcBase determines Native of External |
| X-ComposeFwrk | html | b:mtdt:mailings.el | extSrcBase determines Native of External |
| X-ComposeFwrk | ofSelMailing | b:mtdt:mailings.el | Used in Stensils for Replies/Forwards |
| X-MailingParams: | :type compose | ||
| X-MailingParams: | :extSrcBase nil |
| Header Name | Values | Implementation | Comments |
|---|---|---|---|
| Return-Path | AnyText | b:mtdt:mailings.el | |
| X-Envelope | AnyText | b:mtdt:mailings.el | |
| X-Message-SMTP-Method | qmail | Uses Qmail Inject |
This is an overview of <<MTDT-Distributions Layer>> which builds on the MTDT-Mailings Layer.
The primary concept of MTDT-Distributions is the elisp abstraction of Recipients. Recipients apply to a single OutGoingMessage. A list of Recipients constitutes a RecipientsList. A Distribution is the exercising of a RecipientsList to an OutGoingMessagesList where each Recipients is applied to each OutGoingMessage.
When a RecipientsList is selected it comes the SelectedRecipientsList.
This is an overview of <<MTDT-Names Layer>> which builds on the MTDT-Distributions Layer and MTDT-Mailings Layer.
The primary concept of MTDT-Names is the elisp abstraction of Name and Names.
A Name maps to a single entry in the AddressBook say bbdb. Names can be converted to RecipientsList.
This is an overview of <<MTD-Share Layer>> which builds on the MTDT-Names Layer and MTDT-Distributions Layer and MTDT-Mailings Layer.
Based on a SelectedRecipientsList MTDT facilities can provide for Sharing when using Dire-mode or through interfacing with the browser.
This is an overview of <<MTD-Tracking Layer>> which builds on the MTD-Share Layer and MTDT-Names Layer and MTDT-Distributions Layer and MTDT-Mailings Layer.
Sending and distributions can be tracked based on the information provided by logs of injection, submission and Non-Delivery-Reports and Delivery-Reports and Receipt-Notification.
All of that tracking can be arranged per OutGoingMessage.
See MARMEE for details.
As with all blee packages, blee-installation and straight-installation information is provided.
As always, blee-installation is verified and with straight-installation you are on your own.
/bisos/blee/env3/libs/bnpa:mtdt.el /bisos/blee/env3/libs/bnpa:mtdt-mailing.el /bisos/blee/env3/libs/bnpa:mtdt-distribution.el
(progn
(straight-use-package '(mtdt-mailing :type git :host github :repo "bx-blee/mtdt"))
(straight-use-package '(mtdt-mailing :type git :host github :repo "bx-blee/mtdt-mailing"))
(straight-use-package '(mtdt-mailing :type git :host github :repo "bx-blee/mtdt-distribution"))
)
MTDT allows you to create Mailing Tempaltes with content in 1) Plain Text, 2) Org-Msg, 3) LaTeX and 4) Plain Html.
- Mailings Content Creation
- Plain Text Native – Content of Mailings and Templates
- Org-Msg Native (with html exports) – OrgMsg https://github.com/jeremy-compostella/org-msg is a GNU/Emacs global minor mode mixing up Org mode and Message mode to compose and reply to emails.
- LaTeX External (with HaVeA html exports and pdf of content attachment)
- Html External
- Mailings Content External Composition
- Latex (Lcnt)
- HTML Editor
- Mailings Customization
- Header Customization
- Content Customization
- Mail Templates – Mailings with pre-specified recipients
- Reply and Forward Stensils
- Mailings Selection
- Extensive Global Minor Mode Menus
- Mail Sending and Origination Editing
- Batch
- UnSent Buffer Editing
- External Compostion/Editing
- MTDT-Send – AddressBook (bbdb) Integration
- MTDT-Distribution
- Distribution List Selection
- MTDT-Share
- Dired Mail Sharing
- Browser Mail Sharing
Documentation of MTDT is in the form of a series of related panels. Primary MTDT Blee-Panel is ./panels/mtdt/_nodeBase_/fullUsagePanel-en.org. With some limitations, MTDT can be used as a stand alone Emacs package.
Key components of BISOS and Blee that interact with MTDT include:
- MARMEE – Multi-Account Resident Mail Exchange Environment
- LCNT – ByStar Libre Content production, publication
- Mailings, Names, Dist facilities of BISOS
The examples directory in each of the MTDT packages includes relevant examples.
See ./examples/recipientsList.el for details.
<<MTDT-Layering>> Analysis and implementation of MTDT lends itself well to layering. This table, provides a summary.
| MTDT | Layer | Package Repo | Description |
| Layers | Name | URL | |
|---|---|---|---|
| 1 | <<mailings>> | bx-blee/mtdt-mailing | Create&Use of Mailings/Templates/Stensils |
| 2 | <<distributions>> | bx-blee/distribution | Distribute to recips lists |
| 3 | <<names>> | bx-blee/mtdt-names | Use AddressBook to create recips |
| 4 | <<shares>> | bx-blee/mtdt-share | Send from browser/dired/etc |
| 5 | <<tracking>> | bx-blee/mtdt-track | Handle Non Delivery Reports etc |
A graphical overview of the layering MTDT model is provided below.
The graphviz below provides an overview of the key concepts and abstractions of MTDT packages.
The graphviz below provides an overview of headers used in MTDT-Mailings. See https://github.com/bx-blee/mtdt-mailing for more details.
The graphviz below provides an overview of headers used in MTDT-Mailings. See https://github.com/bx-blee/mtdt-mailing for more details.
The graphviz below provides an overview of headers used in MTDT-Distributions. See https://github.com/bx-blee/mtdt-distribution for more details.
The graphviz below provides an overview of headers used in MTDT-Share. See https://github.com/bx-blee/mtdt-share for more details.
