Я создаю zmq client python скрипт для работы с zmq сервером. Он работает на всех клиентах хорошо, но когда я создаю новую почтовую папку для перемещения, fini sh работает (клиент) в эту папку. Я использую функцию mail.Move. Это работает какой-то клиент. Это мой код клиента:
import zmq
import json
import win32com.client
import time
import os
context = zmq.Context()
print('Connecting to manager approve server…')
socket = context.socket(zmq.REQ)
socket.connect('tcp://localhost:5555')
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6).Folders.Item("1.Manager")
donembox = outlook.GetDefaultFolder(6).Folders.Item("1.1done_manager")
outlook = inbox.Items
mail = outlook.GetLast()
for mail in outlook:
if mail.Body == "Status: Manager Approved \r\n":
print('Inv number : '+str(mail.Subject))
socket.send_string(mail.Subject)
message = socket.recv()
time.sleep(1)
print('Inv number : '+str(mail.Subject) + " was moved to AP approval Process.")
time.sleep(1)
mail.Move(donembox)
print(str(mail.Subject)+ ' success.')
Это мой код сервера zmq:
import time
import threading
import zmq
import win32com.client
import os, sys
import pyautogui as py
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind('tcp://*:5555')
print("Manager Server port 5555 Activate!")
while True:
message = socket.recv()
print('Received request: {}'.format(message))
time.sleep(20)
path = "R:/<my accounting team>/Project/Invoice form/Invoice_generate/"+str(message)+"/"+str(message)+".xlsm"
isExist = os.path.exists(path)
print(isExist)
if os.path.exists(path):
xl=win32com.client.Dispatch("Excel.Application")
xl.Workbooks.Open(os.path.abspath(path))
xl.Application.Run("Module6.manager()")
xl.Application.Quit()
del xl
time.sleep(2)
py.click(599,392)
time.sleep(2)
socket.send_json({ 'status': 'ok' })
print('Reply')
print(path)