App Engine Python SDK version 1.7.4 (2)
[gae.git] / python / lib / django_1_4 / django / core / mail / backends / console.py
blob705497520a870398925f96df3c333e44d628a8a3
1 """
2 Email backend that writes messages to console instead of sending them.
3 """
4 import sys
5 import threading
7 from django.core.mail.backends.base import BaseEmailBackend
9 class EmailBackend(BaseEmailBackend):
10 def __init__(self, *args, **kwargs):
11 self.stream = kwargs.pop('stream', sys.stdout)
12 self._lock = threading.RLock()
13 super(EmailBackend, self).__init__(*args, **kwargs)
15 def send_messages(self, email_messages):
16 """Write all messages to the stream in a thread-safe way."""
17 if not email_messages:
18 return
19 self._lock.acquire()
20 try:
21 stream_created = self.open()
22 for message in email_messages:
23 self.stream.write('%s\n' % message.message().as_string())
24 self.stream.write('-'*79)
25 self.stream.write('\n')
26 self.stream.flush() # flush after each message
27 if stream_created:
28 self.close()
29 except:
30 if not self.fail_silently:
31 raise
32 finally:
33 self._lock.release()
34 return len(email_messages)