File size: 2,796 Bytes
ea7c078
 
f50b29d
 
 
ea7c078
 
 
 
 
 
f50b29d
 
 
 
 
 
 
ea7c078
 
 
 
f50b29d
ea7c078
 
 
 
 
 
 
 
 
 
 
f50b29d
ea7c078
 
 
 
 
 
 
 
 
 
f50b29d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ea7c078
f50b29d
ea7c078
 
 
f50b29d
 
ea7c078
f50b29d
 
 
 
 
 
 
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import os
from datetime import datetime
from email import encoders
from email.mime.base import MIMEBase

from pytz import timezone
import sib_api_v3_sdk
from sib_api_v3_sdk.rest import ApiException
from dotenv import load_dotenv

load_dotenv()
MAIL_API_KEY = os.getenv("MAIL_API")

def get_current_time():
    fmt = "%d-%m-%Y %H:%M:%S %Z%z"
    now_utc = datetime.now(timezone('UTC'))
    now_kolkata = now_utc.astimezone(timezone('Asia/Kolkata'))
    return now_kolkata.strftime(fmt)

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.strip()

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_KEY
    api_client = sib_api_v3_sdk.ApiClient(configuration)
    transactional_api = sib_api_v3_sdk.TransactionalEmailsApi(api_client)
    email_content = mail_body(generation_details)
    attachment_obj = create_attachment(email_content.encode('utf-8'), "data.txt")
    subject = f"New Blog Batch Published to ReXplore at {get_current_time()}"
    sender = {
        "name": "Project Gatekeeper",
        "email": "projectgatekeeper@silerudaagartha.eu.org"
    }
    reply_to = {
        "name": "Project Gatekeeper",
        "email": "gatekeeper@raannakasturi.eu.org"
    }
    recipients = [{"email": "raannakasturi@proton.me"}]
    attachments = [{
        "content": attachment_obj.get_payload(),
        "name": attachment_obj.get_filename()
    }]
    email = sib_api_v3_sdk.SendSmtpEmail(
        to=recipients,
        reply_to=reply_to,
        attachment=attachments,
        text_content=email_content,
        sender=sender,
        subject=subject
    )
    try:
        transactional_api.send_transac_email(email)
        print("Email Sent")
        return True
    except ApiException as e:
        print("Failed to send email:")
        print(f"Exception when calling SMTPApi->send_transac_email: {e}")
        return False

if __name__ == "__main__":
    generation_details = "Example: 5 blogs generated and posted successfully."
    if send_email(generation_details):
        print("Email sent successfully.")
    else:
        print("Email sending failed.")