# Přihlašovací údaje username = 'eupo5s' password = 'Michalka25+' schrankaid='bk7e6j2' from zeep import Client from zeep.wsse.username import UsernameToken import time import os import base64 # Přihlašovací údaje USERNAME = 'eupo5s' PASSWORD = 'Michalka25+' WSDL_URL = 'https://..../ds.wsdl' # upravit dle prostředí # Inicializace klienta client = Client(wsdl=WSDL_URL, wsse=UsernameToken(USERNAME, PASSWORD)) # Kontrola přihlášení try: owner_info = client.service.GetOwnerInfoFromLogin() except Exception as e: print(f"Chyba přihlášení: {e}") exit(1) # Zobrazení základních údajů o přihlášeném účtu print("Přihlášen jako:", owner_info.dbID, owner_info.firmName) # Vytvoření adresáře pro testovací soubory out_dir = os.path.abspath('test_isds_py') os.makedirs(out_dir, exist_ok=True) # Vytvoření a odeslání testovacích zpráv filenames = [] for i, text in enumerate(["První testovací soubor", "Druhý testovací soubor"], 1): fn = os.path.join(out_dir, f"TESTISDS_{i}.txt") with open(fn, 'w', encoding='utf-8') as f: f.write(text) filenames.append(fn) # Nahraj přílohy files_struct = [] for fn in filenames: with open(fn, "rb") as f: data = base64.b64encode(f.read()).decode('ascii') files_struct.append({ 'dmFileDescr': os.path.basename(fn), 'dmMimeType': 'text/plain', 'dmEncodedContent': data, }) # Vytvoření a odeslání zprávy (parametry uprav podle vlastního scénáře!) msg_id = client.service.CreateMessage( senderDBID=None, subject="Testovaci zasilka z Pythonu", isUrgent=False, senderOrgUnitCode=None, # níže: příjemce dbIDRecipient="231", recipientFirmName="Nase org jednotka", recipientOrgUnitNum=-1, recipientOrgUnitName="ncj. 589", receiverPersonCode=None, toHands="K rukam p.Novaka", deepAttachments=files_struct ) print("MessageID:", msg_id) # Chvíle čekání time.sleep(5) # Stažení přijatých zpráv v intervalu records = client.service.GetListOfReceivedMessages( startTime="2009-11-01T00:00:00", endTime="2010-10-01T00:00:00", recNo=0, maxRec=100, recordType=1023, customFilter=None ) for rec in records.dmRecord: print(f"ID zasilky: {rec.dmID}, odesilatel: {rec.dmSender}") received_id = rec.dmID break # Stažení jedné zprávy msg = client.service.MessageDownload(received_id) print("Stažená zpráva:", msg.dmDm.dmID) # Uložení souborů for file in msg.dmDm.dmFiles.dmFile: content = base64.b64decode(file.dmEncodedContent) path = os.path.join(out_dir, file.dmFileDescr) with open(path, 'wb') as f: f.write(content) print("Uloženo:", path) # Označení jako stáhnuto client.service.MarkMessageAsDownloaded(received_id) print("Označeno jako přečtené") # Můžeme pokračovat implementací dalších funkcí: GetDeliveryInfo, SignedMessageDownloadToFile, GetListOfSentMessages, FindDataBox, CheckDataBox…