24 |
24 |
('homepage', _('Homepage'))
|
25 |
25 |
)
|
26 |
26 |
|
|
27 |
UNSUBSCRIBE_LINK_PLACEHOLDER = '##UNSUBSCRIBE_LINK_PLACEHOLDER##'
|
|
28 |
|
27 |
29 |
logger = logging.getLogger(__name__)
|
28 |
30 |
|
29 |
31 |
|
... | ... | |
113 |
115 |
total_sent = 0
|
114 |
116 |
handler = HTML2Text()
|
115 |
117 |
template = loader.get_template('corbo/announce.html')
|
116 |
|
m = Message(subject=self.announce.title, mail_from=settings.CORBO_DEFAULT_FROM_EMAIL)
|
|
118 |
message = Message(subject=self.announce.title, mail_from=settings.CORBO_DEFAULT_FROM_EMAIL,
|
|
119 |
html=template.render(Context({'content': self.announce.text,
|
|
120 |
'unsubscribe_link_placeholder': UNSUBSCRIBE_LINK_PLACEHOLDER})))
|
|
121 |
message.transformer.apply_to_images(func=transform_image_src)
|
|
122 |
# perform transformations in message html, like inline css parsing
|
|
123 |
message.transformer.load_and_transform()
|
|
124 |
# mark all attached images as inline
|
|
125 |
message.transformer.make_all_images_inline()
|
|
126 |
message.transformer.save()
|
117 |
127 |
for s in subscriptions:
|
118 |
128 |
if not s.identifier:
|
119 |
129 |
continue
|
... | ... | |
121 |
131 |
'identifier': s.identifier})
|
122 |
132 |
unsubscribe_link = urlparse.urljoin(settings.SITE_BASE_URL, reverse('unsubscribe',
|
123 |
133 |
kwargs={'unsubscription_token': unsubscribe_token}))
|
124 |
|
message = template.render(Context({'unsubscribe_link': unsubscribe_link,
|
125 |
|
'content': self.announce.text}))
|
126 |
|
m.html = message
|
127 |
|
m.transformer.apply_to_images(func=transform_image_src)
|
128 |
|
# perform transformations in message html, like inline css parsing
|
129 |
|
m.transformer.load_and_transform()
|
130 |
|
# mark all attached images as inline
|
131 |
|
m.transformer.make_all_images_inline()
|
132 |
|
m.transformer.save()
|
|
134 |
message.html = message.html.replace(UNSUBSCRIBE_LINK_PLACEHOLDER, unsubscribe_link)
|
133 |
135 |
handler.body_width = 0
|
134 |
|
m.text = handler.handle(m.html)
|
135 |
|
sent = m.send(to=s.identifier)
|
|
136 |
message.text = handler.handle(message.html)
|
|
137 |
sent = message.send(to=s.identifier)
|
136 |
138 |
if sent:
|
137 |
139 |
total_sent += 1
|
138 |
140 |
logger.info('Announce "%s" sent to %s', self.announce.title, s.identifier)
|