12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- module Data.SMTP.Types.Mime where
- import Data.Default.Class
- mimeVersionHeaderName :: String
- mimeVersionHeaderName = "Mime-Version"
- data ContentTypeHeader = ContentTypeHeader ContentType ContentTypeParameters deriving (Read, Show, Eq, Ord)
- data ContentType = MultiPartMime MultiPartType | MessageMime MessageType |
- ContentMime String deriving (Read, Show, Eq, Ord)
- data MultiPartType = FcmtpDigest | OtherMultiPartType String deriving (Read, Show, Eq, Ord)
- data MessageType = FcmtpResource | OtherMessageType String deriving (Read, Show, Eq, Ord)
- data ContentTypeParameters = ContentTypeParameters {
- boundary :: Maybe String, charset :: Maybe String, other :: [(String, String)]
- } deriving (Read, Show, Eq, Ord)
- instance Default ContentType where
- def = ContentMime "text/plain"
- instance Default ContentTypeParameters where
- def = ContentTypeParameters Nothing Nothing []
- instance Default ContentTypeHeader where
- def = ContentTypeHeader def def{charset=Just "us-ascii"}
- contentTypeHeaderName :: String
- contentTypeHeaderName = "Content-Type"
- data BodyEncoding = B7BitEncoding | B8BitEncoding | BBinaryEncoding deriving (Eq, Ord, Bounded, Enum)
- data TransferEncoding = IdentityEncoding BodyEncoding | QPEncodedBody | Base64EncodedBody deriving (Eq, Ord)
- instance Default TransferEncoding where
- def = IdentityEncoding B7BitEncoding
- instance Show BodyEncoding where
- show B7BitEncoding = "7BIT"
- show B8BitEncoding = "8BITMIME"
- show BBinaryEncoding = "BINARYMIME"
- instance Show TransferEncoding where
- show (IdentityEncoding b) = case b of
- B7BitEncoding -> "7bit"
- B8BitEncoding -> "8bit"
- BBinaryEncoding -> "binary"
- show QPEncodedBody = "quoted-printable"
- show Base64EncodedBody = "base64"
- transferEncodingHeaderName :: String
- transferEncodingHeaderName = "Content-Transfer-Encoding"
- transferToBody :: TransferEncoding -> BodyEncoding
- transferToBody (IdentityEncoding e) = e
- transferToBody _ = B7BitEncoding
|