Documentation
¶
Overview ¶
Package mdn is an implementation of RFC 9007: Handling Message Disposition Notification with the JSON Meta Application Protocol (JMAP). In plain terms, it handles read receipts of emails.
Index ¶
Constants ¶
View Source
const URI jmap.URI = "urn:ietf:params:jmap:mdn"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Capability ¶
type Capability struct{}
The MDN Capability
func (*Capability) New ¶
func (m *Capability) New() jmap.Capability
func (*Capability) URI ¶
func (m *Capability) URI() jmap.URI
type Disposition ¶
type Disposition struct {
// This MUST be one of the following strings:
// - "manual-action"
// - "automatic-action"
ActionMode string `json:"actionMode,omitempty"`
// This MUST be one of the following strings:
// - "mdn-sent-manually"
// - "mdn-sent-automatically"
SendingMode string `json:"sendingMode,omitempty"`
// This MUST be one of the following strings:
// - "deleted"
// - "dispatched"
// - "displayed"
// - "processed"
Type string `json:"type,omitempty"`
}
type MDN ¶
type MDN struct {
// The Email ID of the received message to which this MDN is related
ForEmailID jmap.ID `json:"forEmailId,omitempty"`
// The Subject of the MDN
Subject string `json:"subject,omitempty"`
// The human-readable part of the MDN, as plain text
TextBody string `json:"textBody,omitempty"`
// If true, the content of the original message will appear in the third
// component of the multipart/report generated for the MDN
IncludeOriginalmessage bool `json:"includeOriginalMessage,omitempty"`
// The name of the Mail User Agent (MUA) creating this MDN
ReportingUA string `json:"reportinUA,omitempty"`
// The object containing the diverse MDN disposition options
Disposition *Disposition `json:"disposition,omitempty"`
// The name of the gateway or MTA that translated a foreign
// (non-internet) MDN into this MDN
//
// server-set
MDNGateway string `json:"mdnGateway,omitempty"`
// The original recipient address specified by the sender of the message
// which the MDN is for
//
// server-set
OriginalRecipient string `json:"originalRecipient,omitempty"`
// The recipient for which the MDN is issued
//
// server-set
FinalRecipient string `json:"finalRecipient,omitempty"`
// The "Message-ID" header field of the message this MDN is for
//
// server-set
OriginalMessageID string `json:"originalMessageId,omitempty"`
// Additional information in the form of text messages when the "error"
// disposition modifier appears
//
// server-set
Error []string `json:"error,omitempty"`
// The object where keys are extension-field names and values are
// extension-field values
ExtensionFields map[string]string `json:"extensionFields,omitempty"`
}
A Message Delivery Notification (MDN) object
type Parse ¶
type Parse struct {
// The id of the account to use.
Account jmap.ID `json:"accountId,omitempty"`
// The IDs of blobs to parse as MDNs
BlobIDs []jmap.ID `json:"blobIds,omitempty"`
}
Sends an RFC5322 message from an MDN object
type ParseResponse ¶
type ParseResponse struct {
// The id of the account used for the call.
Account jmap.ID `json:"accountId,omitempty"`
// A map of the blob ID to the MDN resulting from the parse
Parsed map[jmap.ID]*MDN `json:"parsed,omitempty"`
// A list blob IDs that could not be parsed as MDNs
NotParsable []jmap.ID `json:"notParsable,omitempty"`
// A list of blob IDs that couldn't be found
NotFound []jmap.ID `json:"notFound,omitempty"`
}
type Send ¶
type Send struct {
// The id of the account to use.
Account jmap.ID `json:"accountId,omitempty"`
// The ID of the Identity to associate with these MDNs
IdentityID jmap.ID `json:"identityId,omitempty"`
// A map of client-specified creation ID to MDN object
Send map[jmap.ID]*MDN `json:"send,omitempty"`
// A map of the ID to a patch of update the Email object referenced by
// MDN/send, if the sending succeeds. The ID will always be a backward
// reference to the creation ids
OnSuccessUpdateEmail map[jmap.ID]*jmap.Patch `json:"onSuccessUpdateEmail,omitempty"`
}
Sends an RFC5322 message from an MDN object
type SendResponse ¶
type SendResponse struct {
// The id of the account used for the call.
Account jmap.ID `json:"accountId,omitempty"`
// A map of the creation ID to an MDN containing any properties that
// were not set by the client
Sent map[jmap.ID]*MDN `json:"sent,omitempty"`
// A map of creation ID to a SetError for each MDN not sent
NotSent map[jmap.ID]*jmap.SetError `json:"notSent,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.