Skip to main content

Provides an email sender that automatically confirms addresses.

Project description

======================
Confirmed Email Sender
======================

This package provides a drop-in replacements for shortcut send_mail() and class
"EmailMultiAlternatives" which ensures that destination addresses are confirmed
before sending email to them.

The shortcut "send_mail_confirmed()" and class "ConfirmedEmailMessage" send email only
to confirmed addresses and automatically send confirmation messages to unconfirmed addresses.
It handles the confirmation process via a url in the confirmation message.

Messages for unconfirmed addresses will be queued until the address is confirmed
or a timeout period defaulting to 3 days elapses.

This app is configured with the same settings as Django's email backend plus
EMAIL_CONFIRMATION_WAIT which is an integer specifying the number of days to keep
queued messages for an unconfirmed address before deleting them. This setting
defaults to 3. You also need a valid domain name for Django's Sites framework
so the confirmation link is at the correct host.

If you're unfamiliar with the Sites framework, look for 'Sites' in the Django admin,
it should be self-explanatory.

ConfirmedEmailMessage.send() and send_email_confirmed() differ from the originals in
their return values. Instead of a return value of 0/1 to indicate failure/success there
can be a different status for each destination address. These return instead a dictionary with
each destination address as a key and a state indicating
success/failure/queued pending confirmation; see the documentation for
sender.ConfirmedEmailMessage.sent() for details.
This allows you to display a message indicating that confirmation is necessary if appropriate.

settings variables:

EMAIL_CONFIRMATION_WAIT: Number of days to wait between sending confirmation emails.
Defaults to 3 days.

EMAIL_CONFIRMATION_TEMPLATE: Template to use as the body of confirmation emails.
It's important for this template to contain a link for the user to click on
passed to the template via variable {{confirmation_link}}. See default template
'confirmed_email/confirmation_email.txt' for an example.

ADDRESS_CONFIRMED_TEMPLATE: Template displayed to a user when they click on a confirmation link.
Defaults to 'confirmed_email/address_confirmed.html' and has template variable
{{email_address}} passed to it.

Example (view) usage:

destination_address = 'noone@nowhere.com'
cem = ConfirmedEmailMessage(
subject='No Subject Needed',
body='Hi there.',
from_email='someservice@nowhere.com',
to=[destination_address],
)

send_results = cem.send()
if send_results[destination_address] == 'queued':
template = 'confirmed_email/confirmation_required.html'
context = {'email_address': destination_address}
return render(request, template, context)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-confirmed-email-0.0.6.tar.gz (7.1 kB view details)

Uploaded Source

File details

Details for the file django-confirmed-email-0.0.6.tar.gz.

File metadata

File hashes

Hashes for django-confirmed-email-0.0.6.tar.gz
Algorithm Hash digest
SHA256 052c360f2283e068e0d2e809186e3da079021cf31d17f43e95a89651616fc853
MD5 3846cdbceeec9f458d86054c73d3f90c
BLAKE2b-256 d348cf3b60671361cfb23d3301274f922650f8fcc6fb127beaaa62be2e58aa35

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page