Move files to folders
This commit is contained in:
52
server/emailer.py
Normal file
52
server/emailer.py
Normal file
@@ -0,0 +1,52 @@
|
||||
# Lucas Mathews - Fontys Student ID: 5023572
|
||||
# Banking System Emailer File
|
||||
|
||||
import smtplib
|
||||
import ssl
|
||||
from email.mime.text import MIMEText
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
from config import CONFIG
|
||||
|
||||
|
||||
class EmailSendingError(Exception):
|
||||
"""Custom exception raised when an error occurs during email sending."""
|
||||
def __init__(self, message, original_error=None):
|
||||
super().__init__(message)
|
||||
self.original_error = original_error
|
||||
|
||||
|
||||
def send_email(receiver_email, subject, body):
|
||||
"""Sends an email to the specified receiver email address."""
|
||||
sender_email = CONFIG["smtp"]["sender_email"]
|
||||
|
||||
message = MIMEMultipart()
|
||||
message["From"] = f"{CONFIG['smtp']['sender_name']} <{sender_email}>"
|
||||
message["To"] = receiver_email
|
||||
message["Subject"] = subject
|
||||
|
||||
message.attach(MIMEText(body, "plain"))
|
||||
|
||||
text = message.as_string()
|
||||
|
||||
context = ssl.create_default_context()
|
||||
try:
|
||||
with smtplib.SMTP_SSL(CONFIG["smtp"]["host"], CONFIG["smtp"]["port"], context=context) as server:
|
||||
server.login(CONFIG["smtp"]["username"], CONFIG["smtp"]["password"])
|
||||
server.sendmail(sender_email, receiver_email, text)
|
||||
from manager import log_event
|
||||
log_event(f"Email '{subject}' sent to {receiver_email}") # Log the message
|
||||
except Exception as e:
|
||||
error_message = f"Failed to send email to {receiver_email}: {e}"
|
||||
from manager import log_event
|
||||
log_event(error_message) # Log the error
|
||||
raise EmailSendingError(error_message)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
email = "l.mathews@student.fontys.nl"
|
||||
subject = "Test Email"
|
||||
body = "This is a test email."
|
||||
try:
|
||||
send_email(email, subject, body)
|
||||
except EmailSendingError:
|
||||
print("Email sending failed.")
|
||||
Reference in New Issue
Block a user