Merge pull request #1356 from anandpdoshi/email-cc-message

[fix] Show CC in the footer
This commit is contained in:
Nabin Hait 2015-10-26 14:17:19 +05:30
commit 4eafa9db25
3 changed files with 26 additions and 13 deletions

View file

@ -132,9 +132,10 @@ class Communication(Document):
def get_recipients_and_cc(self, recipients, cc, fetched_from_email_account=False):
self.all_email_addresses = []
self.sent_email_addresses = []
self.previous_email_sender = None
if not recipients:
recipients = self.get_recipients()
recipients = self.get_recipients(fetched_from_email_account=fetched_from_email_account)
if not cc:
cc = self.get_cc(recipients, fetched_from_email_account=fetched_from_email_account)
@ -143,6 +144,10 @@ class Communication(Document):
# email was already sent to the original recipient by the sender's email service
original_recipients, recipients = recipients, []
# send email to the sender of the previous email in the thread which this email is a reply to
if self.previous_email_sender:
recipients.append(self.previous_email_sender)
# cc that was received in the email
original_cc = split_emails(self.cc)
@ -206,11 +211,16 @@ class Communication(Document):
{"default_outgoing": 1, "enable_outgoing": 1},
["email_id", "always_use_account_email_id_as_sender"], as_dict=True) or frappe._dict()
def get_recipients(self):
def get_recipients(self, fetched_from_email_account=False):
"""Build a list of email addresses for To"""
# [EDGE CASE] self.recipients can be None when an email is sent as BCC
recipients = split_emails(self.recipients)
if fetched_from_email_account and self.in_reply_to:
# add sender of previous reply
self.previous_email_sender = frappe.db.get_value("Communication", self.in_reply_to, "sender")
recipients.append(self.previous_email_sender)
if recipients:
# exclude email accounts
exclude = [d[0] for d in
@ -235,10 +245,6 @@ class Communication(Document):
cc += self.get_assignees()
cc += self.get_starrers()
if fetched_from_email_account and self.in_reply_to:
# add sender of previous reply
cc.append(frappe.db.get_value("Communication", self.in_reply_to, "sender"))
if cc:
# exclude email accounts, unfollows, recipients and unsubscribes
exclude = [d[0] for d in

View file

@ -83,7 +83,8 @@ def send(recipients=None, sender=None, subject=None, message=None, reference_doc
expose_recipients=expose_recipients,
unsubscribe_method=unsubscribe_method,
unsubscribe_params=unsubscribe_params,
unsubscribe_message=unsubscribe_message
unsubscribe_message=unsubscribe_message,
show_as_cc=show_as_cc
)
email_content = email_content.replace("<!--unsubscribe link here-->", unsubscribe_link.html)
@ -148,10 +149,17 @@ def check_bulk_limit(recipients):
BulkLimitCrossedError)
def get_unsubscribe_link(reference_doctype, reference_name,
email, recipients, expose_recipients, unsubscribe_method, unsubscribe_params, unsubscribe_message):
email, recipients, expose_recipients, show_as_cc,
unsubscribe_method, unsubscribe_params, unsubscribe_message):
unsubscribe_email = recipients if expose_recipients else [email]
unsubscribe_email = _("This email was sent to {0}").format(", ".join(unsubscribe_email))
email_sent_to = recipients if expose_recipients else [email]
email_sent_cc = ", ".join([e for e in email_sent_to if e in show_as_cc])
email_sent_to = ", ".join([e for e in email_sent_to if e not in show_as_cc])
if email_sent_cc:
email_sent_message = _("This email was sent to {0} and copied to {1}").format(email_sent_to, email_sent_cc)
else:
email_sent_message = _("This email was sent to {0}").format(email_sent_to)
if not unsubscribe_message:
unsubscribe_message = _("Unsubscribe from this list")
@ -168,12 +176,12 @@ def get_unsubscribe_link(reference_doctype, reference_name,
</p>
</div>""".format(
unsubscribe_url = unsubscribe_url,
email=unsubscribe_email,
email=email_sent_message,
unsubscribe_message=unsubscribe_message
)
text = "\n{email}\n\n{unsubscribe_message}: {unsubscribe_url}".format(
email=unsubscribe_email,
email=email_sent_message,
unsubscribe_message=unsubscribe_message,
unsubscribe_url=unsubscribe_url
)

View file

@ -8,7 +8,6 @@
<body style="line-height: 1.5; color: #36414C;">
<!-- body -->
<div style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; padding: 10px;">
<em><!-- cc message --></em>
{{ content }}
{{ signature }}
</div>