Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 发送包含节日志信息的电子邮件_Python_Logging_Xmpp_Sendmail - Fatal编程技术网

Python 发送包含节日志信息的电子邮件

Python 发送包含节日志信息的电子邮件,python,logging,xmpp,sendmail,Python,Logging,Xmpp,Sendmail,我正在处理来自该节的信息,目标之一是检查是否存在错误,并通过电子邮件发送通知 我所能做的是捕获错误(IqError或IqTimeout)并发送一封包含书面信息的普通电子邮件: except IqTimeout: USERNAME = 'user' PASSWORD = 'password' sender = 'someguy@myemail.com' receivers = 'bshell@myemail.com' message = """From: SomeGuy <

我正在处理来自该节的信息,目标之一是检查是否存在错误,并通过电子邮件发送通知

我所能做的是捕获错误(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"
我想要的是将我的节中的错误信息发送到电子邮件中,基本上可以如下所示:

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>
至:bshell@myemail.com
发件人:someguy@myemail.com
主题:错误警报
这是您的错误:
记录:
我正在用python写东西。如果你需要更多的信息,我会非常乐意回答

提前谢谢


关于,

如果您想在电子邮件中包含收到的错误节,您只需执行以下操作:

except IqError as e:
    ...
    message = """...

    RECV: %s""" % e.iq
如果只想提取部分错误数据,可以使用以下任一方法:

e.iq['error']['code']
e.iq['error']['type']
e.iq['error']['condition']
e.iq['error']['text']
在您的示例中,这将分别提供:

'404'
'cancel'
'remote-server-not-found'
"" # Because no human friendly text was included
现在,这里是你可能面临的问题。当您捕获到
IqError
异常时,
e.iq
是响应节,其中包括可以如上所述访问的错误数据。如果您正在捕获
IqTimeout
,则
e.iq
是从未收到响应的原始节。在这种情况下,从XML中提取数据实际上没有错误。当然,您可能仍然会得到类似于错误数据的数据,但这可能是因为在访问
e.iq['error']
时插入了错误元素(如果该元素尚不存在)

不要忘记有
sleek@conference.jabber.org
SleekXMPP相关帮助的空间


--Lance

你在使用什么XMPP库?谢谢Lance!现在我怎样才能进入sleek@conference.jabber.org? 这是新的!如果使用adium,则选择File>Join Group Chat,然后输入sleek作为聊天室名称,conference.jabber.org作为服务器。大多数客户都以类似的方式运作。
'404'
'cancel'
'remote-server-not-found'
"" # Because no human friendly text was included