我正在处理节中的信息,目标之一是检查是否有错误并通过电子邮件发送通知。你知道吗
我所能做的是捕获错误(IqError或IqTimeout)并发送一封包含书面信息的普通电子邮件:
except IqTimeout:
USERNAME = 'user'
PASSWORD = 'password'
sender = 'someguy@myemail.com'
receivers = 'bshell@myemail.com'
message = """From: SomeGuy <someguy@myemail.com>
To: Barbara Shell <bshell@myemail.com>
Subject: Alert of an Error
This is a test e-mail message: IqTimeout
"""
smtpObj = smtplib.SMTP('smtp.sendmail.net', 123)
smtpObj.login(USERNAME, PASSWORD)
smtpObj.sendmail(sender, receivers, message)
print "Successfully sent email"
我还尝试打印带有“error”节信息的日志,但只得到一个字段:
logging.error("Could not register account. Error code: %s" %e.iq['error']['code'])
我想要的是将我节中的错误信息发送到电子邮件中,基本上可以这样:
To: bshell@myemail.com
From: someguy@myemail.com
Subject: Alert of an Error
This is your error:
RECV: <iq to="bshell@myemail.net/36457242971338462713453506" from="chat.test.net" id="3" type="error"><oo xmlns="http://chat.net/profile" /><error code="404" type="cancel"><remote-server-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" /></error></iq>
我在用Python写作。如果你需要更多的信息,我很乐意回答!你知道吗
提前谢谢!你知道吗
谨致问候
如果要在电子邮件中包含收到的错误节,只需执行以下操作:
如果只想提取部分错误数据,可以使用以下任一方法:
在您的示例中,分别提供:
现在,这里是你可能面临的问题。当您捕捉到
IqError
异常时,e.iq
是响应节,其中包含错误数据,可以像上面那样访问这些数据。如果您正在捕获IqTimeout
,那么e.iq
就是从未收到响应的原始节。在这种情况下,从XML中提取数据确实没有错误。当然,您可能仍然会得到类似于错误数据的内容,但这是由于在访问e.iq['error']
时插入了一个错误元素(如果还不存在的话)。你知道吗别忘了有一个
sleek@conference.jabber.org
房间可以提供与SleekXMPP相关的帮助。你知道吗兰斯
相关问题 更多 >
编程相关推荐