�
�fc @ s� d Z d d l Z d d l Z d d l Z d d l Z d d l Z d Z d e j f d � � YZ d d# d d$ d d
d d d d d d d d g Z x� e
e e � � D]� Z e e Z
e e
� e d � k r� e j e
e j � Z
nB g Z x* e
D]" Z
e j e j e
e j � � q� We e � Z
[ e
e e <[
q� W[ d d e j d e j � e j d � e j d e j � g Z e j d e j e j B� Z d � Z e g Z d � Z d � Z d � Z e d! k s�e j d" e k r�e � n d S(% s6 mailerdaemon - classes to parse mailer-daemon messagesi����Ns mailerdaemon.Unparseablet ErrorMessagec B s# e Z d � Z d � Z d � Z RS( c C s t j j | | � d | _ d S( Nt ( t rfc822t Messaget __init__t sub( t selft fp( ( s2 /usr/lib64/python2.7/Tools/scripts/mailerdaemon.pyR
s c C sU | j d � } | s d S| j � } | j d � r8 d Sd | k rH d S| | _ d S( Nt Subjecti s waiting maili t warning( t getheadert lowert
startswithR ( R R ( ( s2 /usr/lib64/python2.7/Tools/scripts/mailerdaemon.pyt
is_warning s c C sP xC t D]; } | j � y | | j | j � SWq t k
rA q Xq Wt � d S( N( t EMPARSERSt
rewindbodyR R t Unparseable( R t p( ( s2 /usr/lib64/python2.7/Tools/scripts/mailerdaemon.pyt
get_errors s
( t __name__t
__module__R R
R ( ( ( s2 /usr/lib64/python2.7/Tools/scripts/mailerdaemon.pyR s
s. error: (?Punresolvable): (?P.+)s? ----- The following addresses had permanent fatal errors -----
s (?P[^
].*)
( .*
)?s( remote execution.*
.*rmail (?P.+)s8 The following recipients did not receive your message:
sK +(?P.*)
(The following recipients did not receive your message:
)?s? ------- Failure Reasons --------
(?P.*)
(?P.*)s ^<(?P.*)>:
(?P.*)s= ^(?PUser mailbox exceeds allowed size): (?P.+)s0 ^5\d{2} <(?P[^
>]+)>\.\.\. (?P.+)s) ^Original-Recipient: rfc822;(?P.*)sR ^did not reach the following recipient\(s\):
(?P.*) on .*
+(?P.*)s+ ^ <(?P[^
>]+)> \.\.\. (?P.*)s@ ^Report on your message to: (?P.*)
Reason: (?P.*)s^ ^Your message was not delivered to +(?P.*)
+for the following reason:
+(?P.*)sO ^ was not +(?P[^
].*?) *
.*
.*
.*
because:.*
+(?P[^
].*?) *
R s ^5\d{2} <>\.\.\. (?P.*)s <>\.\.\. (?P.*)s ^<<< 5\d{2} (?P.*)s, ===== stderr was =====
rmail: (?P.*)s ^Diagnostic-Code: (?P.*)s ^From:c C s | j � } t j | � } | d k r6 t | � } n | j d � } g } g } d } x*t D]"} t | � t d � k r| d j | d | � } | d k r�y | j d � } Wn t k
r� n XxL | d j
| | j d � | � } | d k r� Pn | j | j d � � q� WPq�q^ | j | d | � } | d k r^ | j | j d � � y | j d � } Wn t k
r{n XPq^ q^ W| s�t
� n | s�| } | d d k r�| d } n xt D]} t | � t d � k r�x� t t | � d d d � D]� } | | }
t j t j |
� j | j d � � t j � } | j | � } | d k r�| j d
j |
j � d | j d � j � � � | | =q�q�Wq�n | j | � } | d k r�| j d � } Pq�q�Wn x8 | D]0 }
| j d
j |
j � d | j � � � q�W| S(
Ni t reasoni t emaili s returned mail: R i����s <>t s : ( ( t readt emparse_list_fromt searcht Nonet lent startt emparse_list_listt typet groupt
IndexErrort matcht endt appendR t emparse_list_reasont ranget ret compilet escapet joint splitt MULTILINEt strip( R R t datat rest
from_indext errorst emailsR t regexpt iR t exp( ( s2 /usr/lib64/python2.7/Tools/scripts/mailerdaemon.pyt emparse_list\ sj
"
#
03
.c C s@ t | � } t | � } | | k r( d S| | k r8 d Sd Sd S( Ni����i i ( t int( t at b( ( s2 /usr/lib64/python2.7/Tools/scripts/mailerdaemon.pyt sort_numeric� s c C s� t j | � t j d � } i } i } i } d } } } t | d � t j d � � } | j t � x�| D]�}
t |
� } t | � } | j
d � }
d |
|
d f G| j � r� | j � d GH| d } | rn t j
|
d |
� qn qn n y | j � } Wn- t k
r4d
GH| d } | j � qn n Xt | � Gd GHx� | D]� } y7 | j d � d d !\ } } d t j | | f } Wn
d } n X| j | � s�d | |