def message(self): if self._message is not None: return self._message community = self._community request = self.request profile = self.profile model = self._model community_href = resource_url(community, request) model_href = resource_url(model, request) manage_preferences_href = resource_url(profile, request) system_name = get_setting(self.context, "system_name", "KARL") system_email_domain = get_setting(self.context, "system_email_domain") attachments, attachment_links, attachment_hrefs = self.attachments body_template = get_renderer(self._template).implementation() from_name = "%s | %s" % (self.creator.title, system_name) msg = MIMEMultipart() if attachments else Message() msg["From"] = '"%s" <%s>' % (from_name, self.mfrom) msg["To"] = '"%s" <%s>' % (community.title, profile.email) msg["Subject"] = self._subject msg["Precedence"] = 'bulk' body_text = body_template( context=self.context, community=community, community_href=community_href, model=model, model_href=model_href, manage_preferences_href=manage_preferences_href, attachments=attachment_links, attachment_hrefs=attachment_hrefs, profile=profile, creator=self.creator, content_type=self._content_type_name, digest=self.digest, alert=self, ) if self.digest: # Only interested in body for digest html = document_fromstring(body_text) body_element = html.cssselect('body')[0] span = etree.Element("span", nsmap=body_element.nsmap) span[:] = body_element[:] # Copy all body elements to an empty span body_text = etree.tostring(span, pretty_print=True) if isinstance(body_text, unicode): body_text = body_text.encode('utf-8') if attachments: body = MIMEText(body_text, 'html', 'utf-8') msg.attach(body) for attachment in attachments: msg.attach(attachment) else: msg.set_payload(body_text, 'utf-8') msg.set_type("text/html") self._message = msg return msg
def message(self): if self._message is not None: return self._message community = self._community request = self.request profile = self.profile blogentry = self._blogentry community_href = resource_url(community, request) blogentry_href = resource_url(blogentry, request) manage_preferences_href = resource_url(profile, request) system_name = get_setting(self.context, "system_name", "KARL") system_email_domain = get_setting(self.context, "system_email_domain") reply_to = '"%s" <%s+blog-%s@%s>' % ( community.title, community.__name__, docid_to_hex( blogentry.docid), system_email_domain) attachments, attachment_links, attachment_hrefs = self.attachments body_template = get_renderer(self._template).implementation() from_name = "%s | %s" % (self.creator.title, system_name) msg = MIMEMultipart() if attachments else Message() msg["From"] = '"%s" <%s>' % (from_name, self.mfrom) msg["To"] = '"%s" <%s>' % (profile.title, profile.email) msg["Reply-to"] = reply_to msg["Subject"] = self._subject msg["Precedence"] = 'bulk' body_text = body_template( context=self.context, community=community, community_href=community_href, blogentry=blogentry, blogentry_href=blogentry_href, attachments=attachment_links, attachment_hrefs=attachment_hrefs, manage_preferences_href=manage_preferences_href, profile=profile, profiles=self.profiles, creator=self.creator, digest=self.digest, alert=self, history=self._history, ) if self.digest: # Only interested in body for digest html = document_fromstring(body_text) body_element = html.cssselect('body')[0] span = etree.Element("span", nsmap=body_element.nsmap) span[:] = body_element[:] # Copy all body elements to an empty span body_text = etree.tostring(span, pretty_print=True) if isinstance(body_text, unicode): body_text = body_text.encode('utf-8') if attachments: body = MIMEText(body_text, 'html', 'utf-8') msg.attach(body) for attachment in attachments: msg.attach(attachment) else: msg.set_payload(body_text, 'utf-8') msg.set_type("text/html") self._message = msg return self._message
def message(self): if self._message is not None: return self._message community = self._community request = self.request profile = self.profile model = self._model community_href = resource_url(community, request) model_href = resource_url(model, request) manage_preferences_href = resource_url( profile, request) + '/manage_communities.html' # noqa system_name = get_setting(self.context, "title", "KARL") attachments, attachment_links, attachment_hrefs = self.attachments from_name = "%s | %s" % (self.creator.title, system_name) msg = MIMEMultipart() if attachments else Message() msg["From"] = '"%s" <%s>' % (from_name, self.mfrom) msg["To"] = '"%s" <%s>' % (community.title, profile.email) msg["Subject"] = self._subject msg["Precedence"] = 'bulk' body_text = self.template( context=self.context, community=community, community_href=community_href, model=model, model_href=model_href, manage_preferences_href=manage_preferences_href, attachments=attachment_links, attachment_hrefs=attachment_hrefs, profile=profile, profiles=self.profiles, creator=self.creator, content_type=self._content_type_name, digest=self.digest, alert=self, resource_url=resource_url, request=request, reply_enabled=self.reply_enabled) if self.digest: # Only interested in body for digest html = document_fromstring(body_text) body_element = html.cssselect('body')[0] span = etree.Element("span", nsmap=body_element.nsmap) span[:] = body_element[:] # Copy all body elements to an empty span body_text = etree.tostring(span, pretty_print=True) if isinstance(body_text, unicode): body_text = body_text.encode('utf-8') if attachments: body = MIMEText(body_text, 'html', 'utf-8') msg.attach(body) for attachment in attachments: msg.attach(attachment) else: msg.set_payload(body_text, 'utf-8') msg.set_type("text/html") self._message = msg return msg
def message(self): if self._message is not None: return self._message community = self._community request = self.request profile = self.profile blogentry = self._blogentry community_href = resource_url(community, request) blogentry_href = resource_url(blogentry, request) manage_preferences_href = resource_url(profile, request) + '/manage_communities.html' # noqa system_name = get_setting(self.context, "title", "KARL") system_email_domain = get_setting(self.context, "system_email_domain") reply_to = '"%s" <%s+blog-%s@%s>' % (community.title, community.__name__, docid_to_hex(blogentry.docid), system_email_domain) attachments, attachment_links, attachment_hrefs = self.attachments from_name = "%s | %s" % (self.creator.title, system_name) msg = MIMEMultipart() if attachments else Message() msg["From"] = '"%s" <%s>' % (from_name, self.mfrom) msg["To"] = '"%s" <%s>' % (profile.title, profile.email) msg["Reply-to"] = reply_to msg["Subject"] = self._subject msg["Precedence"] = 'bulk' body_text = self.template( context=self.context, community=community, community_href=community_href, blogentry=blogentry, blogentry_href=blogentry_href, attachments=attachment_links, attachment_hrefs=attachment_hrefs, manage_preferences_href=manage_preferences_href, profile=profile, profiles=self.profiles, creator=self.creator, digest=self.digest, alert=self, history=self._history, reply_enabled=self.reply_enabled ) if self.digest: # Only interested in body for digest html = document_fromstring(body_text) body_element = html.cssselect('body')[0] span = etree.Element("span", nsmap=body_element.nsmap) span[:] = body_element[:] # Copy all body elements to an empty span body_text = etree.tostring(span, pretty_print=True) if isinstance(body_text, unicode): body_text = body_text.encode('utf-8') if attachments: body = MIMEText(body_text, 'html', 'utf-8') msg.attach(body) for attachment in attachments: msg.attach(attachment) else: msg.set_payload(body_text, 'utf-8') msg.set_type("text/html") self._message = msg return self._message