Email agents

From Citizendium
Revision as of 04:10, 9 December 2009 by imported>David MacQuigg (→‎Roles and Responsibilities)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
This article is developing and not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
This editable Main Article is under development and subject to a disclaimer.

This article is a subtopic in a cluster of articles under Email system. We assume the reader understands that parent article and its terminology. Here we go into more detail on Actors and their roles. We define each role in terms of the responsibilities associated with that role. We illustrate the use of roles as building blocks in diagrams of various typical email systems.

Actors and Roles

Actors include Users and Agents
Agents may play more than one role
Typical roles include Transmitter, Receiver, and Delivery (MDA).
A Border shows where there is no prior relationship between Agents.
--> Direction of mail flow (no statement as to relationship)
==> Direct relationship between Actors (e.g. a contract)
~~> Indirect relationship (e.g. both directly related to Recipient)
A/B Roles A and B both played by the same Actor

Typical System

|--- Sender's Network ---|           |-- Recipient's Network -|
                                /
Author ==> MSA/Transmitter --> / --> Receiver/MDA ==> Recipient
                              /
                           Border

Roles and Responsibilities

Author
- Originate messages
- Provide a password or other means of authentication
MSA - Mail Submission Agent
- Authenticate the Author
- Manage Author accounts
Transmitter
- Spam Prevention
  - rate limits, content analysis, alerts
  - respond to spam reports
  - maintain reputation
- Authentication
  - RFC compliance
  - IP authorization (SPF, SID, CSV, ...)
  - signatures & key management (DKIM ...)
  - Return Address validation code
- Process SMTP Rejects
Sender
- This is a general term that can mean any of Author, MSA, or Transmitter.
- It should not be used in context where more precision is needed.
Receiver
- Block DoS
- Authenticate Sender
  - HELO, Return Address, Headers, Signature
  - reject forgeries
- Assess reputation
  - whitelists
- Filter spam
- Add authentication headers
- Manage Recipient accounts/options
  - whitelisting, blacklisting, filtering, blocking, forwarding
- Process spam reports, DSNs
Forwarder
- Authenticate upstream Agent
- Set up forwarding to downstream Agent
  - check RFC compliance
  - set up authentication records
  - submit forwarding request, wait for approval
- Manage Recipient accounts
  - maintain database of forwarding addresses
  - suspend account when a message is rejected
  - communicate w Recipient re  "      "
- Maintain reputation as a trusted Forwarder
  - certifications
- Process SMTP Rejects
MDA - Mail Delivery Agent
- Authenticate upstream Agent
- Sort and store messages
- Provide secure access for Recipients
  - POP3, IMAP, Webmail
- Manage Recipient accounts/options
- Relay spam reports to Receiver (or don't accept them)
Recipient
- Set up accounts with each Agent
- Select options in each account
- Report spam to Receiver
Mediator
- Receive - Process - Resend automatically
- Acts as an Agent, but
- Classified as a User for simplicity

Example Systems

Basic setup with four actors

|--- Sender's Network ---|           |-- Recipient's Network -|
                                /
Author ==> MSA/Transmitter --> / --> Receiver/MDA ==> Recipient
                              /
                           Border
          

Simple forwarding is quite common

          |-------- Recipient's Network ---------|
     /
--> / --> Receiver/Forwarder ~~> MDA ==> Recipient
   /
 Border

Chain forwarding should be discouraged

          |------------ Recipient's Network ------------|
     /
--> / --> Receiver ~~> Forwarder(s) ~~> MDA ==> Recipient
   /
 Border

Open forwarding must be banned

     /                   /    |-- Recipient's Network -|
--> / --> Forwarder --> / --> Receiver/MDA ==> Recipient
   /                   /
 Border              Border