66 lines
1.8 KiB
Python
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 |