Skip to content

Commit

Permalink
Don't do any message preparation if we aren't going to send an email
Browse files Browse the repository at this point in the history
  • Loading branch information
JeffersonBledsoe committed Dec 15, 2023
1 parent c54ff6c commit 6ecedda
Showing 1 changed file with 24 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -258,37 +258,41 @@ def send_data(self):

registry = getUtility(IRegistry)
mail_settings = registry.forInterface(IMailSchema, prefix="plone")
mto = self.block.get("default_to", mail_settings.email_from_address)
charset = registry.get("plone.email_charset", "utf-8")
message = self.prepare_message()

msg = EmailMessage()
msg.set_content(message, charset=charset, subtype="html", cte=CTE)
msg["Subject"] = subject
msg["From"] = mfrom
msg["To"] = mto
msg["Reply-To"] = mreply_to
should_send = self.block.get("send", [])
if should_send:
mto = self.block.get("default_to", mail_settings.email_from_address)
message = self.prepare_message()

msg.replace_header("Content-Type", 'text/html; charset="utf-8"')
msg = EmailMessage()
msg.set_content(message, charset=charset, subtype="html", cte=CTE)
msg["Subject"] = subject
msg["From"] = mfrom
msg["To"] = mto
msg["Reply-To"] = mreply_to
msg.replace_header("Content-Type", 'text/html; charset="utf-8"')

headers_to_forward = self.block.get("httpHeaders", [])
for header in headers_to_forward:
header_value = self.request.get(header)
if header_value:
msg[header] = header_value
headers_to_forward = self.block.get("httpHeaders", [])
for header in headers_to_forward:
header_value = self.request.get(header)
if header_value:
msg[header] = header_value

self.manage_attachments(msg=msg)

should_send = self.block.get("send", [])
self.manage_attachments(msg=msg)
if should_send:
if isinstance(should_send, list):
if "recipient" in self.block.get(
"send", []
):
if "recipient" in self.block.get("send", []):
self.send_mail(msg=msg, charset=charset)
# Backwards compatibility for forms before 'acknowledgement' sending
else:
self.send_mail(msg=msg, charset=charset)

# send a copy also to the fields with bcc flag
for bcc in self.get_bcc():
msg.replace_header("To", bcc)
self.send_mail(msg=msg, charset=charset)

acknowledgement_message = self.block.get("acknowledgementMessage")
if acknowledgement_message and "acknowledgement" in self.block.get("send", []):
acknowledgement_address = self.get_acknowledgement_field_value()
Expand All @@ -302,11 +306,6 @@ def send_data(self):
)
self.send_mail(msg=acknowledgement_mail, charset=charset)

for bcc in self.get_bcc():
# send a copy also to the fields with bcc flag
msg.replace_header("To", bcc)
self.send_mail(msg=msg, charset=charset)

def prepare_message(self):
email_format_page_template_mapping = {
"list": "send_mail_template",
Expand Down

0 comments on commit 6ecedda

Please sign in to comment.