# http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 import os
-from notifier.models import Notification, Emailed
+from notifier.models import Notification, Emailed, Email
 
-from django.core.mail import send_mail
 from django.template.loader import render_to_string
 from django.utils import timezone
 
             # render email template
             message = render_to_string(template_name, context)
 
-            # finally, send the email
-            send_mail(
-                "Your Booking is Ready",
-                message,
-                os.environ.get("DEFAULT_FROM_EMAIL", "opnfv@laas-dashboard"),
-                [user.userprofile.email_addr],
-                fail_silently=False
-            )
+            # finally, queue email for sending
+            Email.objects.create(title="Your Booking is Ready", message=message, recipient=user.userprofile.email_addr)
 
     @classmethod
     def email_booking_over(cls, booking):
 
             message = render_to_string(template_name, context)
 
-            send_mail(
-                "Your Booking has Expired",
-                message,
-                os.environ.get("DEFAULT_FROM_EMAIL", "opnfv@laas-dashboard"),
-                [user.userprofile.email_addr],
-                fail_silently=False
-            )
+            Email.objects.create(title="Your Booking has Expired", message=message, recipient=user.userprofile.email_addr)
 
     @classmethod
     def email_booking_expiring(cls, booking):
 
             message = render_to_string(template_name, context)
 
-            send_mail(
-                "Your Booking is Expiring",
-                message,
-                os.environ.get("DEFAULT_FROM_EMAIL", "opnfv@laas-dashboard"),
-                [user.userprofile.email_addr],
-                fail_silently=False
-            )
+            Email.objects.create(title="Your Booking is Expiring", message=message, recipient=user.userprofile.email_addr)
 
     @classmethod
     def task_updated(cls, task):
 
 from django.utils import timezone
 from django.conf import settings
 from booking.models import Booking
-from notifier.models import Emailed
+from notifier.models import Emailed, Email
 from notifier.manager import NotificationHandler
+from django.core.mail import send_mail
+
+import os
 
 
 @shared_task
             continue
         NotificationHandler.notify_booking_expiring(booking)
         Emailed.objects.create(almost_end_booking=booking)
+
+
+@shared_task
+def dispatch_emails():
+    for email in Email.objects.filter(sent=False):
+        email.sent = True
+        email.save()
+        send_mail(
+            email.title,
+            email.message,
+            os.environ.get("DEFAULT_FROM_EMAIL", "opnfv@laas-dashboard"),
+            email.recipient,
+            fail_silently=False)