IHP Api Reference
Copyright(c) digitally induced GmbH 2020
Safe HaskellSafe-Inferred

IHP.Mail

Description

 
Synopsis

Documentation

data MailServer Source #

Constructors

SES

Uses AWS SES for sending emails

Sendmail

Uses the local Sendmail binary for sending emails. Avoid this with IHP Cloud

SendGrid

Uses SendGrid for sending emails

Fields

SMTP

Uses a generic SMTP server for sending emails

Fields

class BuildMail mail where Source #

Minimal complete definition

subject, to, from, html

Methods

subject :: (?mail :: mail) => Text Source #

You can use ?mail to make this dynamic based on the given entity

to :: (?context :: context, ConfigProvider context) => mail -> Address Source #

The email receiver

Example:

to ConfirmationMail { .. } = Address { addressName = Just (get #name user), addressEmail = get #email user }

Example: Send all emails to a fixed email address while in development mode

to CreateAccountMail { .. } = Address
    { addressName = Just (fullName admin)
    , addressEmail =
        if isDevelopment then
            "staging@example.com"
        else
            get #email admin
    }

replyTo :: (?context :: context, ConfigProvider context) => mail -> Maybe Address Source #

Sets an optional reply-to address

cc :: (?context :: context, ConfigProvider context) => mail -> [Address] Source #

Public list of addresses to receive a copy of the mail (CC)

bcc :: (?context :: context, ConfigProvider context) => mail -> [Address] Source #

Hidden list of addresses to receive a copy of the mail (BCC)

headers :: (?context :: context, ConfigProvider context) => mail -> Headers Source #

Custom headers, excluding from, to, cc, bcc, subject, and reply-to

Example: Add a custom X-Mailer header

headers CreateAccountMail { .. } = [("X-Mailer", "mail4j 2.17.0")]

from :: (?mail :: mail, ?context :: context, ConfigProvider context) => Address Source #

Your sender address

Example:

from = Address { addressName = "Acme Inc.", addressEmail = "hi@example.com" }

html :: (?context :: context, ConfigProvider context) => mail -> Html Source #

Similiar to a normal html view, HSX can be used here

text :: (?context :: context, ConfigProvider context) => mail -> Text Source #

When no plain text version of the email is specified it falls back to using the html version but striping out all the html tags

attachments :: (?context :: context, ConfigProvider context) => mail -> [MailAttachment] Source #

Optional, mail attachments

Example:

attachments = [ MailAttachment { name = "attached_file.xml", contentType = "application/xml", content = "<xml><hello/></xml>" } ]

data SMTPEncryption Source #

Configuration for a mailer used by IHP

Constructors

Unencrypted 
TLS 
STARTTLS 

sendMail :: (BuildMail mail, ?context :: context, ConfigProvider context) => mail -> IO () Source #

Sends an email

Uses the mail server provided in the controller context, configured in Config/Config.hs