Created send_plain_email_task celery task and calling it on contact send
This commit is contained in:
parent
d69dbcb720
commit
1da04a05d1
2 changed files with 30 additions and 0 deletions
|
@ -21,6 +21,7 @@ from opennebula_api.models import OpenNebulaManager
|
|||
from opennebula_api.serializers import VirtualMachineTemplateSerializer, \
|
||||
VMTemplateSerializer
|
||||
from datacenterlight.tasks import create_vm_task
|
||||
from utils.tasks import send_plain_email_task
|
||||
|
||||
|
||||
class ContactUsView(FormView):
|
||||
|
@ -41,6 +42,15 @@ class ContactUsView(FormView):
|
|||
|
||||
def form_valid(self, form):
|
||||
form.save()
|
||||
email_data = {
|
||||
'subject': 'Request received on Data Center Light',
|
||||
'from_email': settings.DCL_SUPPORT_FROM_ADDRESS,
|
||||
'to': ['info@ungleich.ch'],
|
||||
'body': "\n".join(
|
||||
["%s=%s" % (k, v) for (k, v) in form.cleaned_data.items()]),
|
||||
'reply_to': [form.cleaned_data.get('email')],
|
||||
}
|
||||
send_plain_email_task.delay(email_data)
|
||||
if self.request.is_ajax():
|
||||
return self.render_to_response(
|
||||
self.get_context_data(success=True, contact_form=form))
|
||||
|
|
20
utils/tasks.py
Normal file
20
utils/tasks.py
Normal file
|
@ -0,0 +1,20 @@
|
|||
from celery.utils.log import get_task_logger
|
||||
from django.conf import settings
|
||||
from dynamicweb.celery import app
|
||||
from django.core.mail import EmailMessage
|
||||
|
||||
logger = get_task_logger(__name__)
|
||||
|
||||
|
||||
@app.task(bind=True, max_retries=settings.CELERY_MAX_RETRIES)
|
||||
def send_plain_email_task(self, email_data):
|
||||
"""
|
||||
This is a generic celery task to be used for sending emails.
|
||||
A celery wrapper task for EmailMessage
|
||||
|
||||
:param self:
|
||||
:param email_data: A dict of all needed email headers
|
||||
:return:
|
||||
"""
|
||||
email = EmailMessage(**email_data)
|
||||
email.send()
|
Loading…
Reference in a new issue