From a0d4362fef7dd68b4c7a86ae5de5063cfc9efa85 Mon Sep 17 00:00:00 2001 From: hubobel Date: Sat, 26 Jul 2025 16:04:34 +0200 Subject: [PATCH] initial Commit --- PrintBring.py | 118 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 116 insertions(+), 2 deletions(-) diff --git a/PrintBring.py b/PrintBring.py index 8d0c2e6..27ca235 100644 --- a/PrintBring.py +++ b/PrintBring.py @@ -9,6 +9,120 @@ from email.mime.base import MIMEBase from email import encoders import sys from datetime import datetime -import logging -import json +import json +from random import * + + +def conf(): + appname = os.path.basename(sys.argv[0]) + appname = appname.replace(".py", ".conf") + absFilePath = os.path.abspath(__file__) + absFilePath = absFilePath.replace(".py", ".conf") + + if os.path.isfile(absFilePath) is False: + print(appname + ' scheint es nicht zu geben.') + print('Ich lege eine neue Datei ' + appname + ' an.') + passw = {'mail': + { + "mail_pass": "", + "mail_user": "", + "mail_host": "", + "mail_folder": "" + }, + 'Telegram': + { + "Chat_ID": "", + "TOKEN": "" + } + } + + print(str(appname) + ' bitte entsprechend befüllen.') + with open(absFilePath, 'w') as fp: + json.dump(passw, fp, sort_keys=True, indent=4) + quit() + else: + with open(absFilePath) as file: + passw = json.load(file) + return passw + +passw = conf() +absender = ['Alberti', 'Feco', 'Schreinerei Groh', 'Ruesselsheim', 'Wettinerstraße', 'Bestellung_Nr.', 'Rapport vom:' + , 'Datenblatt zu ', 'Zeichnung Nr.', 'DWG-Format', 'Fa. Nogly', 'Siemens', 'Thyssen Elevators' + , 'TÜV', 'der Sachverständige schreibt:', 'Protokoll vom:', 'Jour-Fix Nr.', 'MS-Teams', 'Anfrage' + , 'IG1-2022-', 'HI1-2022-', 'IK-2022'] + +if not os.path.exists('Post'): + os.makedirs('Post') +empfänger = sys.argv +if (len(empfänger)) != 2: + print('Geben Sie bitte GENAU EINEN Empfänger als Argument an!') + exit() +host = passw['mail']['mail_host'] +username = passw['mail']['mail_user'] +password = passw['mail']['mail_pass'] +smtpServer = passw['mail']['mail_smtp'] +smtpPort = 587 +sender = username +reciever = empfänger[1] +subject = "Hallo Welt!" +msg = MIMEMultipart() +msg['Subject'] = subject +msg['From'] = sender +msg['To'] = reciever + +mail = Imbox(host, username=username, password=password, ssl=True, ssl_context=None, starttls=False) +messages = mail.messages(unread=True) + +for (uid, message) in messages: + mail.mark_seen(uid) # optional, mark message as read + + bodie = message.sent_from + body = 'von: ' + str(bodie[0]['name']) + ' über: '+ str(bodie[0]['email']) + body = body + ' mit dem Betreff: ' + message.subject + body = body + '\n' + body = body + 'Datum der ursprünglichen Nachricht: ' + message.date + body = body + '\n' + now = datetime.now() + dt_string = now.strftime("%d/%m/%Y %H:%M:%S") + body = body + 'Datum der Jobverarbeitung: ' + dt_string + #print(body) + for idx, attachment in enumerate(message.attachments): + try: + y = (randint(0, len(absender))) + fn_att = (absender[y]) + + name = time.time() + fn = attachment.get('filename') + root, extension = os.path.splitext(fn) + att_fn = str(name) + str(extension) + att_fn = fn_att + att_fn + print(att_fn) + with open('Post/' + att_fn, "wb") as fp: + fp.write(attachment.get('content').read()) + msg = MIMEMultipart() + msg.attach(MIMEText(body, 'plain')) + filename = att_fn + attachment = open('Post/' + filename, 'rb') + part = MIMEBase('application', 'octet-stream') + part.set_payload((attachment).read()) + encoders.encode_base64(part) + part.add_header('Content-Disposition', 'attachment; filename= %s' % att_fn) + msg.attach(part) + server = smtplib.SMTP(smtpServer, 587) + server.starttls() + server.login(username, password) + msg['Subject'] = str(fn) + ' to ' + str(name) + text = msg.as_string() + server.sendmail(username, reciever, text) + server.quit() + + + except: + print(traceback.print_exc()) + + mail.delete(uid) +for filename in os.listdir('Post'): + os.remove('Post/'+filename) + +mail.logout() \ No newline at end of file