1
from django.core.mail import EmailMultiAlternatives
2
from django.conf import settings
3
from django.core.urlresolvers import reverse
4
from django.utils.translation import ugettext as _
5
from django.utils import translation
7
from pybb import settings as pybb_settings
8
from pybb.util import absolute_url
10
# i18n features disabled. See ticket #47
12
TOPIC_SUBSCRIPTION_TEXT_TEMPLATE = lambda: _(u"""New reply from %(username)s to topic that you have subscribed on.
16
See topic: %(post_url)s
17
Unsubscribe %(unsubscribe_url)s""")
19
PM_RECIPIENT_TEXT_TEMPLATE = lambda: _(u"""User %(username)s have sent your the new private message.
23
See message online: %(pm_url)s""")
26
def send_mail(rec_list, subject, text, html=None):
28
Shortcut for sending email.
31
from_email = settings.DEFAULT_FROM_EMAIL
33
msg = EmailMultiAlternatives(subject, text, from_email, rec_list)
35
msg.attach_alternative(html, "text/html")
36
if pybb_settings.EMAIL_DEBUG:
39
print 'Subject:', subject
43
msg.send(fail_silently=True)
46
def notify_topic_subscribers(post):
47
from pybb.models import Post
49
if pybb_settings.DISABLE_NOTIFICATION:
53
if post != topic.head:
54
for user in topic.subscribers.all():
56
old_lang = translation.get_language()
57
lang = user.pybb_profile.language or 'en'
58
translation.activate(lang)
60
subject = u'RE: %s' % topic.name
62
text_content = TOPIC_SUBSCRIPTION_TEXT_TEMPLATE() % {
63
'username': post.user.username,
64
'message': post.body_text,
65
'post_url': absolute_url(post.get_absolute_url()),
66
'unsubscribe_url': absolute_url(reverse('pybb_delete_subscription', args=[post.topic.id])),
68
#html_content = html_version(post)
69
send_mail([to_email], subject, text_content)
71
translation.activate(old_lang)
74
def notify_pm_recipients(pm):
75
if pybb_settings.DISABLE_NOTIFICATION:
79
from pybb.models import PrivateMessage
81
old_lang = translation.get_language()
82
lang = pm.dst_user.pybb_profile.language or 'en'
83
translation.activate(lang)
87
subject = _(u'New private message for you')
88
to_email = pm.dst_user.email
89
text_content = PM_RECIPIENT_TEXT_TEMPLATE() % {
90
'username': pm.src_user.username,
91
'message': pm.body_text,
92
'pm_url': absolute_url(pm.get_absolute_url()),
94
send_mail([to_email], subject, text_content)
96
translation.activate(old_lang)