Files
DDNSupdater/daily_report.py
2026-04-13 09:08:09 +01:00

52 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env python3
import smtplib
from email.mime.text import MIMEText
import re
# Gmail SMTP settings
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
EMAIL_ADDRESS = "ddns.updates@gmail.com"
EMAIL_PASSWORD = "tacssyofvkgqvbzo"
TO_EMAIL = "rafjaniak@outlook.com"
# Log file path
LOG_FILE = "/var/log/ddns.log"
def send_email(subject, body):
msg = MIMEText(body)
msg["Subject"] = subject
msg["From"] = EMAIL_ADDRESS
msg["To"] = TO_EMAIL
try:
with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server:
server.ehlo()
server.starttls()
server.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
server.send_message(msg)
print("✅ Email sent successfully")
except Exception as e:
print(f"❌ Failed to send email: {e}")
def get_last_log_entries():
last_entries = {}
with open(LOG_FILE) as f:
for line in f:
# Match domain entries with status ✅ or ❌
match = re.search(r"\] (✅|❌|🌍) (\S+)", line)
if match:
status, domain = match.groups()
last_entries[domain] = line.strip()
return last_entries
if __name__ == "__main__":
entries = get_last_log_entries()
if entries:
body = "\n".join(entries.values())
else:
body = "No log entries found."
send_email("DDNS Daily Report", body)