Spaces:
Running
Running
File size: 2,398 Bytes
ea7c078 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
from email import encoders
from email.mime.base import MIMEBase
import os
from datetime import datetime
from pytz import timezone
import pytz
import sib_api_v3_sdk
from sib_api_v3_sdk.rest import ApiException
from dotenv import load_dotenv
load_dotenv()
mail_api = os.getenv("MAIL_API")
def mail_body(generation_details):
body = f"""
Hello,
These are the details of the Blogs Posted at ReXplore: Science @ Fingertips.
Date & Time: {get_current_time()}
{generation_details}
Regards,
Nayan Kasturi (Raanna),
Developer & Maintainer,
ReXplore.
"""
return body
def get_current_time():
fmt = "%d-%m-%Y %H:%M:%S %Z%z"
now_utc = datetime.now(timezone('UTC'))
now_asia = now_utc.astimezone(timezone('Asia/Kolkata'))
return now_asia.strftime(fmt)
def create_attachment(content, filename):
attachment = MIMEBase('application', 'octet-stream')
attachment.set_payload(content)
encoders.encode_base64(attachment)
attachment.add_header('Content-Disposition', f'attachment; filename="{filename}"')
return attachment
def send_email(generation_details):
configuration = sib_api_v3_sdk.Configuration()
configuration.api_key['api-key'] = mail_api
api_instance = sib_api_v3_sdk.TransactionalEmailsApi(sib_api_v3_sdk.ApiClient(configuration))
data = mail_body(generation_details)
data_attchment = create_attachment(data.encode('utf-8'), "data.txt")
subject = "New Blog Batch Published to ReXplore at " + get_current_time()
sender = {"name": "Project Gatekeeper", "email": "[email protected]"}
reply_to = {"name": "Project Gatekeeper", "email": "[email protected]"}
text_content = data
attachments = [
{"content": data_attchment.get_payload(), "name": data_attchment.get_filename()},
]
to = [{"email": "[email protected]"}]
send_smtp_email = sib_api_v3_sdk.SendSmtpEmail(to=to, reply_to=reply_to, attachment=attachments, text_content=text_content, sender=sender, subject=subject)
try:
api_instance.send_transac_email(send_smtp_email)
print("Email Sent")
return True
except ApiException as e:
print("Can't send email")
print("Exception when calling SMTPApi->send_transac_email: %s\n" % e)
return False
|