mime-mail-0.4.14: Compose MIME email messages.

Safe HaskellNone
LanguageHaskell98

Network.Mail.Mime

Contents

Synopsis

Datatypes

newtype Boundary #

MIME boundary between parts of a message.

Constructors

Boundary 

Fields

Instances
Eq Boundary # 
Instance details

Defined in Network.Mail.Mime

Show Boundary # 
Instance details

Defined in Network.Mail.Mime

Random Boundary # 
Instance details

Defined in Network.Mail.Mime

data Mail #

An entire mail message.

Constructors

Mail 

Fields

Instances
Show Mail # 
Instance details

Defined in Network.Mail.Mime

Methods

showsPrec :: Int -> Mail -> ShowS #

show :: Mail -> String #

showList :: [Mail] -> ShowS #

emptyMail :: Address -> Mail #

A mail message with the provided from address and no other fields filled in.

data Address #

Constructors

Address 
Instances
Eq Address # 
Instance details

Defined in Network.Mail.Mime

Methods

(==) :: Address -> Address -> Bool #

(/=) :: Address -> Address -> Bool #

Show Address # 
Instance details

Defined in Network.Mail.Mime

IsString Address # 
Instance details

Defined in Network.Mail.Mime

Methods

fromString :: String -> Address #

type Alternatives = [Part] #

Multiple alternative representations of the same data. For example, you could provide a plain-text and HTML version of a message.

data Part #

A single part of a multipart message.

Constructors

Part 

Fields

Instances
Eq Part # 
Instance details

Defined in Network.Mail.Mime

Methods

(==) :: Part -> Part -> Bool #

(/=) :: Part -> Part -> Bool #

Show Part # 
Instance details

Defined in Network.Mail.Mime

Methods

showsPrec :: Int -> Part -> ShowS #

show :: Part -> String #

showList :: [Part] -> ShowS #

data Encoding #

How to encode a single part. You should use Base64 for binary data.

Instances
Eq Encoding # 
Instance details

Defined in Network.Mail.Mime

Show Encoding # 
Instance details

Defined in Network.Mail.Mime

type Headers = [(ByteString, Text)] #

Render a message

renderMail :: RandomGen g => g -> Mail -> (ByteString, g) #

Render a Mail with a given RandomGen for producing boundaries.

renderMail' :: Mail -> IO ByteString #

Like renderMail, but generates a random boundary.

Sending messages

sendmail :: ByteString -> IO () #

Send a fully-formed email message via the default sendmail executable with default options.

sendmailCustom #

Arguments

:: FilePath

sendmail executable path

-> [String]

sendmail command-line options

-> ByteString

mail message as lazy bytestring

-> IO () 

Send a fully-formed email message via the specified sendmail executable with specified options.

sendmailCustomCaptureOutput :: FilePath -> [String] -> ByteString -> IO (ByteString, ByteString) #

Like sendmailCustom, but also returns sendmail's output to stderr and stdout as strict ByteStrings.

Since 0.4.9

renderSendMail :: Mail -> IO () #

Render an email message and send via the default sendmail executable with default options.

renderSendMailCustom #

Arguments

:: FilePath

sendmail executable path

-> [String]

sendmail command-line options

-> Mail

mail to render and send

-> IO () 

Render an email message and send via the specified sendmail executable with specified options.

High-level Mail creation

simpleMail #

Arguments

:: Address

to

-> Address

from

-> Text

subject

-> Text

plain body

-> Text

HTML body

-> [(Text, FilePath)]

content type and path of attachments

-> IO Mail 

A simple interface for generating an email with HTML and plain-text alternatives and some file attachments.

Note that we use lazy IO for reading in the attachment contents.

simpleMail' #

Arguments

:: Address

to

-> Address

from

-> Text

subject

-> Text

body

-> Mail 

A simple interface for generating an email with only plain-text body.

simpleMailInMemory #

Arguments

:: Address

to

-> Address

from

-> Text

subject

-> Text

plain body

-> Text

HTML body

-> [(Text, Text, ByteString)]

content type, file name and contents of attachments

-> Mail 

A simple interface for generating an email with HTML and plain-text alternatives and some ByteString attachments.

Since 0.4.7

Utilities

addPart :: Alternatives -> Mail -> Mail #

Add an Alternative to the Mails parts.

To e.g. add a plain text body use > addPart [plainPart body] (emptyMail from)

addAttachment :: Text -> FilePath -> Mail -> IO Mail #

Add an attachment from a file and construct a Part.

addAttachmentCid #

Arguments

:: Text

content type

-> FilePath

file name

-> Text

content ID

-> Mail 
-> IO Mail 

Add an attachment from a file and construct a Part with the specified content id in the Content-ID header.

Since: 0.4.12

addAttachmentBS #

Arguments

:: Text

content type

-> Text

file name

-> ByteString

content

-> Mail 
-> Mail 

Add an attachment from a ByteString and construct a Part.

Since 0.4.7

addAttachmentBSCid #

Arguments

:: Text

content type

-> Text

file name

-> ByteString

content

-> Text

content ID

-> Mail 
-> Mail 

Since: 0.4.12

addAttachmentsBS :: [(Text, Text, ByteString)] -> Mail -> Mail #

Since 0.4.7

renderAddress :: Address -> Text #

Format an E-Mail address according to the name-addr form (see: RFC5322 § 3.4 "Address specification", i.e: [display-name] '<'addr-spec'>') This can be handy for adding custom headers that require such format.

Since: 0.4.11

htmlPart :: Text -> Part #

Construct a UTF-8-encoded html Part.

plainPart :: Text -> Part #

Construct a UTF-8-encoded plain-text Part.

randomString :: RandomGen d => Int -> d -> (String, d) #

Generates a random sequence of alphanumerics of the given length.

quotedPrintable :: Bool -> ByteString -> Builder #

The first parameter denotes whether the input should be treated as text. If treated as text, then CRs will be stripped and LFs output as CRLFs. If binary, then CRs and LFs will be escaped.