swoosh v0.4.0 Release Notes
Release Date: 2016-06-25 // almost 8 years ago-
๐ This version contains a couple of breaking changes, mostly due to the introduction of a
deliver!/2
(see below):- ๐ฐ API-based adapter will now return a slightly different error payload:
{:error, {status_code, payload}}
instead of{:error, body}
deliver/2
will no longer raise if the email validation failed.- We now only validate that the
From
address is present, according to the RFC 5322. This is the lowest common deminotar across all our adapters. This means we will NO longer check that a recipient is present (to
,cc
,bcc
), that the subject is set, or that either ofhtml_body
ortext_body
is set.
โ Added
- โ Add Sendmail adapter.
- โ Add a new
deliver!/2
function that will raise in case of an API or SMTP error, or if the email validation failed. In that case aSwoosh.DeliveryError
will be raised. - โ Add Logger adapter. This can be useful when you don't want to send real emails but still want to know that the email has been sent sucessfully.
- โ Add DKIM support for the SMTP and Sendmail adapter.
- โ Add basic integration testing. We are now making real calls to the various providers' API during testing (except Mandrill).
๐ Changed
- Raise on missing adapter config.
- ๐จ Refactor
Swoosh.Adapters.Local
to support configurable storage drivers. For now, only memory storage has been implemented. - Generate case-insentitive Message-IDs in
Swoosh.Adapters.Local.Storage.Memory
. This was previously breaking endpoint with lowercase path rewrite. - ๐ Move email validation logic to base mailer. We also change the validation to follow the RFC and we now only check that
a
From
email address is set. - Bump gen_smtp to 0.11.0.
๐ Fixed
- ๐ Show the actual port
Plug.Swoosh.MailboxPreview
is binding on. - โ Add poison to the list of applications in the
mix.exs
file. - ๐ Handle 401 response for Mailgun properly. It's a text response so we don't try to JSON decode it anymore.
โ Removed
- ๐
Swoosh.InMemoryMailbox
has been removed in favor ofSwoosh.Adapters.Local.Storage.Memory
. If you were using that โก๏ธ module directly you will need to update any reference to it.
- ๐ฐ API-based adapter will now return a slightly different error payload: