xml.parsers.expat.ExpatError для префикса zimbra

Я новичок в почтовом сервере Zimbra, и для подключения и отправки почты, которую я использую в следующем уроке, любой человек может подсказать мне еще один более простой способ отправки почты из Zimbra.

Для получения токена пользователя я использую Zimbra PreAuth, но когда я пытаюсь получить токен пользователя, он продолжает выдавать мне эту ошибку

Traceback (most recent call last):
  File "/home/nazir/PycharmProjects/temp/check.py", line 66, in <module>
    send_email()
  File "/home/nazir/PycharmProjects/temp/check.py", line 38, in send_email
    secret_preauth_key
  File "/usr/local/lib/python3.5/dist-packages/pythonzimbra/tools/auth.py", line 104, in authenticate
    server.send_request(auth_request, response)
  File "/usr/local/lib/python3.5/dist-packages/pythonzimbra/communication.py", line 142, in send_request
    response.set_response(server_response)
  File "/usr/local/lib/python3.5/dist-packages/pythonzimbra/response_xml.py", line 26, in set_response
    self.response_doc = minidom.parseString(response_text)
  File "/usr/lib/python3.5/xml/dom/minidom.py", line 1968, in parseString
    return expatbuilder.parseString(string)
  File "/usr/lib/python3.5/xml/dom/expatbuilder.py", line 925, in parseString
    return builder.parseString(string)
  File "/usr/lib/python3.5/xml/dom/expatbuilder.py", line 223, in parseString
    parser.Parse(string, True)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 29, column 93

Вот полный код для получения токена почты Zimbra

def get_zimbraMail_token():

    mailstring = 'contact@reviewsai.com'
    secret_preauth_key = 'xxxxxxx'

    ssl._create_default_https_context = ssl._create_unverified_context

    # parser = etree.XMLParser(recover=True)
    # etree.fromstring(secret_preauth_key, parser=parser)

    # parser = ET.XMLParser(encoding="utf-8")
    # mailstring = ET.fromstring(mailstring, parser=parser)
    # secret_preauth_key = ET.fromstring(secret_preauth_key, parser=parser)

    # mailstring=mailstring.encode('utf-8')
    # secret_preauth_key = secret_preauth_key.encode('utf-8')

    url = 'https://bplmail.shopnroar.com/'

    comm = Communication(url)
    print ('commmm    ', comm)

    print ('url  ', url)
    print ('mail string  ', mailstring)
    print ('secret auth key  ', secret_preauth_key)
    usr_token = auth.authenticate(
        url,
        mailstring,
        secret_preauth_key
    )

    print('tokennnn     ', usr_token)
    info_request = comm.gen_request(token=usr_token)
    print('info request     ', info_request)

    info_request.add_request(
        'GetFolderRequest',
        {
            'folder': {
                'path': '/inbox'
            }
        },
        'urn:zimbraMail'
    )


    info_response = comm.send_request(info_request)

    print('info response     ', info_response)

    if not info_response.is_fault():
        print(info_response.get_response()['GetFolderResponse']['folder']['n'])

Я уже применяю прокомментированные методы, чтобы преодолеть эту проблему. или любой другой может подключиться и отправить почту с почтового сервера zimbra в python.

0 ответов

Другие вопросы по тегам