Skip to content

Commit

Permalink
fix email piece
Browse files Browse the repository at this point in the history
  • Loading branch information
vinicvaz committed Dec 4, 2023
1 parent cf9c9c9 commit 3dbc71e
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 7 deletions.
2 changes: 1 addition & 1 deletion config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ REPOSITORY_LABEL = "Social Media Domino Pieces"

# The version of this Pieces release
# Attention: changing this will create a new release
VERSION = "0.5.2"
VERSION = "0.5.2"
21 changes: 15 additions & 6 deletions pieces/EmailSenderPiece/piece.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import ssl
import smtplib
import os
from pathlib import Path


servers = {
Expand Down Expand Up @@ -40,7 +41,15 @@ def piece_function(self, input_data: InputModel, secrets_data: SecretsModel):
str_email_receivers = input_data.email_receivers

email_subject = input_data.email_subject.format(**{arg.arg_name: arg.arg_value for arg in input_data.subject_args}) if input_data.subject_args else input_data.email_subject
email_body = input_data.email_body.format(**{arg.arg_name: arg.arg_value for arg in input_data.body_args}) if input_data.body_args else input_data.email_body

# Check if body is a file path, if so, read the file and use its content as the email body
if Path(input_data.email_body).exists():
with open(input_data.email_body, "r") as f:
plain_email_body = f.read()
else:
plain_email_body = input_data.email_body

email_body = plain_email_body.format(**{arg.arg_name: arg.arg_value for arg in input_data.body_args}) if input_data.body_args else plain_email_body

email_attachment = input_data.attachment_path

Expand All @@ -55,7 +64,7 @@ def piece_function(self, input_data: InputModel, secrets_data: SecretsModel):
attachment = self.create_attachment(email_attachment)
email_message.attach(attachment)

context = ssl.create_default_context()
context = ssl.create_default_context()
self.logger.info("Sending email")
try:
with smtplib.SMTP_SSL(email_server, 465, context=context) as service:
Expand All @@ -72,25 +81,25 @@ def piece_function(self, input_data: InputModel, secrets_data: SecretsModel):
error = str(e)
print(error)
raise e

self.format_display_result(email_account, str_email_receivers, email_subject, email_body, email_attachment)

return OutputModel(
message=msg,
success=success,
error=error
)

def format_display_result(self, email_account: str, str_email_receivers: str, email_subject: str, email_body: str, email_attachment_path: Union[str, None]):
md_text = f"""
## Email Sender: \n
{email_account} \n
## Email Receivers: \n
## Email Receivers: \n
{str_email_receivers} \n
## Email Subject: \n
{email_subject} \n
## Email Body: \n
{email_body} \n
{email_body} \n
"""
if email_attachment_path:
md_text += f"""## Email Attachment File Name: \n{os.path.basename(email_attachment_path)} \n"""
Expand Down

0 comments on commit 3dbc71e

Please sign in to comment.