Revert "Fix code quality test failures" This reverts commit8c55e11d1f. Revert "Fix celery send_activation_email task failure" This reverts commit810eea0e51. Revert "Convert Account Activation Emails to edx-ACE" This reverts commit7984c37a4f.
53 lines
1.8 KiB
Python
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
|