Python SUDS客户端服务。问题

Python SUDS客户端服务。问题,python,suds,Python,Suds,我对这项本应是容易的任务完全不知所措 我正在尝试将Python与SUD结合使用,以获取WSDL URL、创建客户机对象、修改一些信息,然后发布备份WSDL(或者它告诉我发布它的任何地方) 我收到以下错误消息: Traceback (most recent call last): File "./test.py", line 47, in <module> email_sent = client.service.sendEmail(From, SenderContext

我对这项本应是容易的任务完全不知所措

我正在尝试将Python与SUD结合使用,以获取WSDL URL、创建客户机对象、修改一些信息,然后发布备份WSDL(或者它告诉我发布它的任何地方)

我收到以下错误消息:

Traceback (most recent call last):
    File "./test.py", line 47, in <module>
    email_sent = client.service.sendEmail(From, SenderContext, Email)
NameError: name 'client' is not defined

sendTestMail()
类中定义client,然后在try/except语句中使用较低级别的缩进。因此,此时客户端不在范围内。将try/except块缩进到
sendTestMail()
范围内,或者全局声明客户端

import sys

import logging
import traceback as tb
import suds.metrics as metrics
import unittest
from suds import null, WebFault
from suds.client import Client

def sendTestMail():
    url = 'wsdl url at my company'
    client = Client(url)

    SenderContext = client.factory.create('senderContext')
    SenderContext.registeredSenderId = 'Endurance'
    SenderContext.mailType = 'TRANSACTIONAL_OTHER'
    SenderContext.subSenderId = 12345

    From = client.factory.create('emailAddressBean')
    From.address = 'me@somecompany.com'
    From.valid = 'TRUE'

    Email = client.factory.create('email')
    Email.recipients = 'me@somecompany.com'
    Email.ccRecipients = ''
    Email.bccRecipients = ''
    Email.agencyId = ''
    Email.content = 'This is a test of sending'
    Email.contentType = 'text/plain'
    Email.description = ''
    #Email.from = From
    Email.fromName = 'An Employee'
    Email.subject = 'This is a test'
    Email.mrrId = ''
    Email.templateId = ''

try:
    email_sent = client.service.sendEmail(From, SenderContext, Email)
except WebFault, e:
    print e

if  __name__ == '__main__':
    errors = 0
    sendTestMail()
    print '\nFinished: errors=%d' % errors