IMAP-Sync/imapsync.py

66 lines
1.8 KiB
Python

import sys
import csv
import os
import requests
import socket
import subprocess
from pathlib import Path
csvfile = Path("user.csv")
host = "front"
port = 993
# Mail Server aktiv ?
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((host, port))
if result != 0:
print(f"Fehler beim Verbinden zu {host} auf Port {port}") ## --- E-Mail senden
except:
print(f"Fehler beim Verbinden zu {host} auf Port {port}") ## --- E-Mail senden
finally:
sock.close()
# CSV vorhanden1
try:
csvfile_path = csvfile.resolve(strict=True)
except FileNotFoundError:
print("not Found")
#CSV erste Zeile auslesen (domain;domain)
rows = []
with open(csvfile, mode='r', newline='') as file:
reader = csv.reader(file, delimiter=";")
next(reader)
for row in reader:
rows.append(row)
for row in rows:
username = row[0]
password = row[1]
domain = row[2]
# Erstellen einer Liste für den Befehl und die Argumente
command = [
"imapsync",
"--host1", domain,
"--user1", username,
"--password1", password,
"--host2", "front",
"--user2", "archiv@archiv.trendsetzer.eu",
"--port2","143",
"--password2", "S8jZT7Ke3gdzxV0QfsB19R1bNwR716M6yUJQ4az9Kr8EK"
# "--prefix2", f"Archiv/{username}/", # Verwende dynamisch den username im Zielordner
# "--regextrans2", "s/^(.*)$/\\${1}/",
]
subprocess.run(command)
# CSV laden
# User in CSV kontrollieren ob vorhanden -> User anlegen
# impasync für jeden User durchführen -> Doamin aus CSV laden domain1.de;domain2.de
# Wenn Anmeldung am User failed -> Email mit User an -> impasync@domain1.de
# Abschluss Ergbniss in SQLLite Datenbank schreiben
# Daily Report an -> impasync@domain1.de