簡単なはずの作業に完全に迷ってしまいます。
Python と SUDS を使用して、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
コードの "Try:" セクションを削除し、come print コードを挿入してオブジェクトを印刷すると、すべて正常に動作します。情報を取得し、必要な変更を行います。
私が理解していないのは、クライアント オブジェクトが作成され、情報をバックアップしようとしているが、できないということです。XML と Python の経験がある人はいますか?
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