#!/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/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()