[fix] Show CC in the footerversion-14
@@ -132,9 +132,10 @@ class Communication(Document): | |||||
def get_recipients_and_cc(self, recipients, cc, fetched_from_email_account=False): | def get_recipients_and_cc(self, recipients, cc, fetched_from_email_account=False): | ||||
self.all_email_addresses = [] | self.all_email_addresses = [] | ||||
self.sent_email_addresses = [] | self.sent_email_addresses = [] | ||||
self.previous_email_sender = None | |||||
if not recipients: | if not recipients: | ||||
recipients = self.get_recipients() | |||||
recipients = self.get_recipients(fetched_from_email_account=fetched_from_email_account) | |||||
if not cc: | if not cc: | ||||
cc = self.get_cc(recipients, fetched_from_email_account=fetched_from_email_account) | 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 | # email was already sent to the original recipient by the sender's email service | ||||
original_recipients, recipients = recipients, [] | 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 | # cc that was received in the email | ||||
original_cc = split_emails(self.cc) | original_cc = split_emails(self.cc) | ||||
@@ -206,11 +211,16 @@ class Communication(Document): | |||||
{"default_outgoing": 1, "enable_outgoing": 1}, | {"default_outgoing": 1, "enable_outgoing": 1}, | ||||
["email_id", "always_use_account_email_id_as_sender"], as_dict=True) or frappe._dict() | ["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""" | """Build a list of email addresses for To""" | ||||
# [EDGE CASE] self.recipients can be None when an email is sent as BCC | # [EDGE CASE] self.recipients can be None when an email is sent as BCC | ||||
recipients = split_emails(self.recipients) | 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: | if recipients: | ||||
# exclude email accounts | # exclude email accounts | ||||
exclude = [d[0] for d in | exclude = [d[0] for d in | ||||
@@ -235,10 +245,6 @@ class Communication(Document): | |||||
cc += self.get_assignees() | cc += self.get_assignees() | ||||
cc += self.get_starrers() | 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: | if cc: | ||||
# exclude email accounts, unfollows, recipients and unsubscribes | # exclude email accounts, unfollows, recipients and unsubscribes | ||||
exclude = [d[0] for d in | exclude = [d[0] for d in | ||||
@@ -83,7 +83,8 @@ def send(recipients=None, sender=None, subject=None, message=None, reference_doc | |||||
expose_recipients=expose_recipients, | expose_recipients=expose_recipients, | ||||
unsubscribe_method=unsubscribe_method, | unsubscribe_method=unsubscribe_method, | ||||
unsubscribe_params=unsubscribe_params, | 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) | email_content = email_content.replace("<!--unsubscribe link here-->", unsubscribe_link.html) | ||||
@@ -148,10 +149,17 @@ def check_bulk_limit(recipients): | |||||
BulkLimitCrossedError) | BulkLimitCrossedError) | ||||
def get_unsubscribe_link(reference_doctype, reference_name, | 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: | if not unsubscribe_message: | ||||
unsubscribe_message = _("Unsubscribe from this list") | unsubscribe_message = _("Unsubscribe from this list") | ||||
@@ -168,12 +176,12 @@ def get_unsubscribe_link(reference_doctype, reference_name, | |||||
</p> | </p> | ||||
</div>""".format( | </div>""".format( | ||||
unsubscribe_url = unsubscribe_url, | unsubscribe_url = unsubscribe_url, | ||||
email=unsubscribe_email, | |||||
email=email_sent_message, | |||||
unsubscribe_message=unsubscribe_message | unsubscribe_message=unsubscribe_message | ||||
) | ) | ||||
text = "\n{email}\n\n{unsubscribe_message}: {unsubscribe_url}".format( | text = "\n{email}\n\n{unsubscribe_message}: {unsubscribe_url}".format( | ||||
email=unsubscribe_email, | |||||
email=email_sent_message, | |||||
unsubscribe_message=unsubscribe_message, | unsubscribe_message=unsubscribe_message, | ||||
unsubscribe_url=unsubscribe_url | unsubscribe_url=unsubscribe_url | ||||
) | ) | ||||
@@ -8,7 +8,6 @@ | |||||
<body style="line-height: 1.5; color: #36414C;"> | <body style="line-height: 1.5; color: #36414C;"> | ||||
<!-- body --> | <!-- body --> | ||||
<div style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; padding: 10px;"> | <div style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; padding: 10px;"> | ||||
<em><!-- cc message --></em> | |||||
{{ content }} | {{ content }} | ||||
{{ signature }} | {{ signature }} | ||||
</div> | </div> | ||||