From 1da01fb98eb98500a8f8042315dfe360fd651f47 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 1 Mar 2023 07:50:43 +0000 Subject: [PATCH] Init --- imap2pdf.py | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 imap2pdf.py diff --git a/imap2pdf.py b/imap2pdf.py new file mode 100644 index 0000000..f4b68b9 --- /dev/null +++ b/imap2pdf.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 + +import sys +import string +import random +import os +import imap_tools +import time +import requests + +imap_server = "" +imap_user = "" +imap_pass = "" +imap_inbox = "INBOX" + +out = "/mnt/thieme_smart_import/" +logfile = "/var/log/fax.log" + +def generate_hash(): + letters = string.ascii_letters + letters = letters + string.digits + random_string = "" + for x in range(0, 4): + random_string = random_string + random.choice(letters) + return random_string + +def log(command): + f = open(logfile, 'a') + f.write(time.ctime() + ' ' + command + '\n') + f.close() + +def main(): + try: + imap = imap_tools.MailBox(imap_server).login(imap_user, imap_pass) + except: + sys.exit(0) + + for message in imap.fetch(): + to = message.to[0].split("@")[0] + + if to == 'fax01' or to == 'fax02' or to == 'fax03': + id = '12345' + log("Fax for " + id) + elif to == 'fax04': + id = '12346' + log("Fax for " + id) + else: + imap.move(message.uid, "Unbekannt") + log(" > Unknown recipient") + continue + + filename = '1^' + id + '^' + generate_hash() + '.pdf' + + for attachment in message.attachments: + with open(os.path.join(out, filename), 'wb') as f: + f.write(attachment.payload) + log(" > Save attachment to " + filename) + + # Mattermost + headers = {'Content-Type': 'application/json',} + + if id == '12345': + values = '{ "channel": "fax-010203", "text": "Neues Fax in ID 12345 emfangen" }' + elif id == '12346': + values = '{ "channel": "fax-02", "text": "Neues Fax in ID 12346 emfangen" }' + + response = requests.post('http://chat:8065/hooks/APIKEY', headers=headers, data=values) + + imap.move(message.uid, "Archiv") + + imap.logout() + +if __name__ == "__main__": + main()