Writing new mailer backends
If you wish to implement an alternate method of sending email, you can do so by subclassing the
Mailer
class. There are two methods implementors typically override:
The start
method is a coroutine that is called by the component from its own
start()
method. You can handle any necessary resource
related setup there.
The deliver
method must be overridden and needs to:
handle both a single
EmailMessage
and an iterable of themremove any
Bcc
header from each message to avoid revealing the hidden recipients
If you want your mailer to be available as a backend for the
MailerComponent
, you need to add the corresponding entry point
for it. Suppose your mailer class is named AwesomeMailer
, lives in the package
foo.bar.awesome
and you want to give it the alias awesome
, add this line to your project’s
setup.py
under the entrypoints
argument in the asphalt.mailer.mailers
namespace:
setup(
# (...other arguments...)
entry_points={
'asphalt.mailer.mailers': [
'awesome = foo.bar.awesome:AwesomeMailer'
]
}
)