Files
edx-platform/common/djangoapps/student/tasks.py
Ned Batchelder ea30aba6fc Revert pull request #22042
Revert "Fix code quality test failures"

This reverts commit 8c55e11d1f.

Revert "Fix celery send_activation_email task failure"

This reverts commit 810eea0e51.

Revert "Convert Account Activation Emails to edx-ACE"

This reverts commit 7984c37a4f.
2019-10-18 15:31:09 -04:00

53 lines
1.8 KiB
Python

"""
This file contains celery tasks for sending email
"""
from __future__ import absolute_import
import logging
from boto.exception import NoAuthHandlerFound
from celery.exceptions import MaxRetriesExceededError
from celery.task import task # pylint: disable=no-name-in-module, import-error
from django.conf import settings
from django.core import mail
log = logging.getLogger('edx.celery.task')
@task(bind=True)
def send_activation_email(self, subject, message, from_address, dest_addr):
"""
Sending an activation email to the user.
"""
max_retries = settings.RETRY_ACTIVATION_EMAIL_MAX_ATTEMPTS
retries = self.request.retries
try:
mail.send_mail(subject, message, from_address, [dest_addr], fail_silently=False)
# Log that the Activation Email has been sent to user without an exception
log.info("Activation Email has been sent to User {user_email}".format(
user_email=dest_addr
))
except NoAuthHandlerFound: # pylint: disable=broad-except
log.info('Retrying sending email to user {dest_addr}, attempt # {attempt} of {max_attempts}'. format(
dest_addr=dest_addr,
attempt=retries,
max_attempts=max_retries
))
try:
self.retry(countdown=settings.RETRY_ACTIVATION_EMAIL_TIMEOUT, max_retries=max_retries)
except MaxRetriesExceededError:
log.error(
'Unable to send activation email to user from "%s" to "%s"',
from_address,
dest_addr,
exc_info=True
)
except Exception: # pylint: disable=bare-except
log.exception(
'Unable to send activation email to user from "%s" to "%s"',
from_address,
dest_addr,
exc_info=True
)
raise Exception