add: debug & smtp

This commit is contained in:
2024-02-16 14:49:10 +01:00
parent 8cb412c74b
commit c0561634f5
2 changed files with 57 additions and 3 deletions

View File

@@ -5,13 +5,26 @@ import subprocess
import os
import requests
from functools import wraps
import smtphelper
HTTP_NOT_FOUND = 404
AUTH = None
def email_address(dispatch_uuid, user_topic, message, smtp_target, smtp_user, smtp_pass):
'''Send message via email'''
def debug_send(uuid, data, fail_it=False):
'''Dummy function to print and ack a dispatch for debugging'''
print(json.dumps(data, intent=2))
if fail_it:
report_failed_dispatch(uuid, "Dummy Error for Debugging")
else:
confirm_dispatch(uuid)
def email_send(dispatch_uuid, email_address, message, smtp_target, smtp_user, smtp_pass):
'''Send message via email'''
subject = "Atlantis Dispatch"
smtphelper.smtp_send(smtp_target, smtp_user, smtp_pass, email_address, subject, message)
report_failed_dispatch(uuid, "Email dispatch not yet implemented")
def ntfy_send(dispatch_uuid, user_topic, message, ntfy_push_target, ntfy_user, ntfy_pass):
@@ -117,7 +130,11 @@ if __name__ == "__main__":
elif method == "ntfy":
ntfy_send(dispatch_uuid, user_topic, message, ntfy_push_target, ntfy_user, ntfy_pass)
elif method == "email":
email_send(email_address, message)
email_send(dispatch_uuid, email_address, message, smtp_target, smtp_user, smtp_pass)
elif method == "debug":
debug_send(uuid, entry)
elif method == "debug-fail":
debug_send(uuid, entry, fail_it=True)
else:
print("Unsupported dispatch method {}".format(entry["method"]), sys=sys.stderr)
continue

37
client/smtp.py Normal file
View File

@@ -0,0 +1,37 @@
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def smtp_send(server, user, password, recipient, subject, body):
# Email and password for authentication
sender_email = f'{user}@{server}'
sender_password = password
# Recipient email address
recipient_email = recipient
# SMTP server details
smtp_server = server
smtp_port = 587 # Default port for TLS connection
# Create a message
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = recipient_email
message['Subject'] = subject
# Add body to email
body = body
message.attach(MIMEText(body, 'plain'))
# Establish a connection to the SMTP server
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls() # Secure the connection
server.login(sender_email, sender_password)
# Send the email
server.sendmail(sender_email, recipient_email, message.as_string())
# Close the connection
server.quit()