delivery-status-notification-0.2.0.0: Parse bounce messages per RFC3464, RFC3463
Safe HaskellSafe-Inferred
LanguageGHC2021

Email.DSN.DeliveryStatus

Description

 
Synopsis

Documentation

data DeliveryStatus Source #

Body of a message/delivery-status https://www.rfc-editor.org/rfc/rfc3464#section-2.1

Instances

Instances details
Generic DeliveryStatus Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

Associated Types

type Rep DeliveryStatus :: Type -> Type #

Read DeliveryStatus Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

Show DeliveryStatus Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

Eq DeliveryStatus Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

Ord DeliveryStatus Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

type Rep DeliveryStatus Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

type Rep DeliveryStatus = D1 ('MetaData "DeliveryStatus" "Email.DSN.DeliveryStatus" "delivery-status-notification-0.2.0.0-76ALF88on4MADTvdhQzjSp" 'False) (C1 ('MetaCons "DeliveryStatus" 'PrefixI 'True) (S1 ('MetaSel ('Just "perMessageFields") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty RawField)) :*: S1 ('MetaSel ('Just "perRecipientFields") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty (NonEmpty PerRecipientField)))))

data PerRecipientField Source #

A subset of the RFC-specified per-recipient fields, chosen because they are the ones most useful for interpreting bounces.

Instances

Instances details
Generic PerRecipientField Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

Associated Types

type Rep PerRecipientField :: Type -> Type #

Read PerRecipientField Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

Show PerRecipientField Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

Eq PerRecipientField Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

Ord PerRecipientField Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

type Rep PerRecipientField Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

type Rep PerRecipientField = D1 ('MetaData "PerRecipientField" "Email.DSN.DeliveryStatus" "delivery-status-notification-0.2.0.0-76ALF88on4MADTvdhQzjSp" 'False) (C1 ('MetaCons "FinalRecipient" 'PrefixI 'True) (S1 ('MetaSel ('Just "addressType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "address") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: (C1 ('MetaCons "Status" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 StatusCode)) :+: C1 ('MetaCons "OtherPerRecipient" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RawField))))

data RawField Source #

Constructors

RawField 

Fields

Instances

Instances details
Generic RawField Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

Associated Types

type Rep RawField :: Type -> Type #

Methods

from :: RawField -> Rep RawField x #

to :: Rep RawField x -> RawField #

Read RawField Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

Show RawField Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

Eq RawField Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

Ord RawField Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

type Rep RawField Source # 
Instance details

Defined in Email.DSN.DeliveryStatus

type Rep RawField = D1 ('MetaData "RawField" "Email.DSN.DeliveryStatus" "delivery-status-notification-0.2.0.0-76ALF88on4MADTvdhQzjSp" 'False) (C1 ('MetaCons "RawField" 'PrefixI 'True) (S1 ('MetaSel ('Just "fieldName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "fieldBody") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

parser :: Parser DeliveryStatus Source #

This parser isn't fully compliant with the RFC, since it omits the syntax variants marked as obsolete. The obsolete syntax may be supported in future, but was omitted for simplicity (my use cases didn't need it).