JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrB YI~d@sddgZddlZddlZddlZddlmZmZddlmZddlm Z ddl m Z m Z ddlm Zdd lmZejZd Zed Zd d ZdddZddZddZGdddZGdddeZGdddeZdS)Message EmailMessageN)BytesIOStringIO)utils)errors)Policycompat32)charset)decode_bz; z[ \(\)<>@,;:\\"/\[\]\?=]cCs4t|d\}}}|s$|dfS||fS)N;)str partitionstrip)paramasepbr2/opt/alt/python37/lib64/python3.7/email/message.py _splitparams rTcCs|dk rt|dkrt|trL|d7}t|d|d|d}d||fSy|dWn2tk r|d7}t|dd}d||fSX|st|rd |t |fSd||fSn|SdS) Nr*z%s=%sasciizutf-8z%s="%s") len isinstancetuplerZencode_rfc2231encodeUnicodeEncodeError tspecialssearchquote)rvaluer#rrr _formatparam's   r%cCsdt|}g}x|dddkr|dd}|d}x<|dkrt|dd||dd|drt|d|d}q:W|dkrt|}|d|}d|kr|d}|d|d||dd}||||d}qW|S)Nr rr"z\"r=)r findcountrindexrlowerappend)sZplistendfirrr _parseparamIs    *  ,r1cCs4t|tr&|d|dt|dfSt|SdS)Nrrr)rrrunquote)r$rrr _unquotevalue]s r3c@seZdZefddZddZdcdd Zd d Zddd d ZddZ ddZ ddZ ddZ deddZ dfddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zdgd0d1Zd2d3Zd4d5Zdhd6d7Zd8d9Zd:d;Zdd?Z!d@dAZ"dBdCZ#dDdEZ$dFdGZ%didJdKZ&djdLdMZ'dkdPdQZ(dldRdSZ)dmdTdUZ*dndVdWZ+dodXdYZ,dZd[Z-dpd\d]Z.dqd^d_Z/d`daZ0ddbl1m2Z2dS)rrcCs:||_g|_d|_d|_d|_d|_|_g|_d|_dS)Nz text/plain) policy_headers _unixfrom_payload_charsetZpreambleZepiloguedefects _default_type)selfr4rrr__init__xs zMessage.__init__cCs|S)N) as_string)r;rrr__str__szMessage.__str__FrNcCsJddlm}|dkr|jn|}t}||d||d}|j||d|S)Nr) GeneratorF) mangle_from_ maxheaderlenr4)unixfrom)email.generatorr?r4rflattengetvalue)r;rBrAr4r?fpgrrrr=s zMessage.as_stringcCs|S)N)as_bytes)r;rrr __bytes__szMessage.__bytes__cCsHddlm}|dkr|jn|}t}||d|d}|j||d|S)Nr)BytesGeneratorF)r@r4)rB)rCrJr4rrDrE)r;rBr4rJrFrGrrrrHs  zMessage.as_bytescCs t|jtS)N)rr7list)r;rrr is_multipartszMessage.is_multipartcCs ||_dS)N)r6)r;rBrrr set_unixfromszMessage.set_unixfromcCs|jS)N)r6)r;rrr get_unixfromszMessage.get_unixfromcCsF|jdkr|g|_n.y|j|Wntk r@tdYnXdS)Nz=Attach is not valid on a message with a non-multipart payload)r7r,AttributeError TypeError)r;payloadrrrattachs   zMessage.attachc Cs|r(|rdS|dkr|jS|j|S|dk rNt|jtsNtdt|j|j}t|dd}t|trt |r| dd}|sy| | ddd}Wqtk r| dd}YqXn2|ry| d}Wntk r| d}YnX|s|S|d krt|S|d krZtd |\}}x|D]}|j||q>W|S|d krt|} t} ytj | | d d| Stjk r|SXt|tr|S|S)NzExpected list, got %szcontent-transfer-encodingrrsurrogateescaper replacezraw-unicode-escapezquoted-printablebase64)z x-uuencodeZuuencodeZuuezx-uueT)quiet)rLr7rrKrPtyper getr+rZ_has_surrogatesrdecode get_param LookupError UnicodeErrorquopriZ decodestringr join splitlinesr4Z handle_defectruurEError) r;r0rZrQcteZbpayloadr$r9ZdefectZin_fileZout_filerrr get_payloadsV"          zMessage.get_payloadcCspt|dr:|dkr||_dSt|ts.t|}||j}t|drT|dd|_n||_|dk rl||dS)NrrZrrS)hasattrr7rCharsetroutput_charsetrZ set_charset)r;rQr rrr set_payload/s    zMessage.set_payloadc Cs|dkr|dd|_dSt|ts.t|}||_d|krH|ddd|krf|jdd|dn|d|||kr||j|_d|kr| }y ||Wnjt k r|j}|ry| dd }Wn t k r| |j }YnX|||_|d|YnXdS) Nr z MIME-Versionz1.0z Content-Typez text/plain)r zContent-Transfer-EncodingrrS) del_paramr8rrf add_headerZget_output_charset set_paramZ body_encoder7Zget_body_encodingrPrr]rg)r;r rcrQrrrrhCs8       zMessage.set_charsetcCs|jS)N)r8)r;rrr get_charsetrszMessage.get_charsetcCs t|jS)N)rr5)r;rrr__len__zszMessage.__len__cCs ||S)N)rY)r;namerrr __getitem__~s zMessage.__getitem__cCsv|j|}|r\|}d}x>|jD]4\}}||kr$|d7}||kr$td||q$W|j|j||dS)Nrrz/There may be at most {} {} headers in a message)r4Zheader_max_countr+r5 ValueErrorformatr,header_store_parse)r;rovalZ max_countZlnamefoundkvrrr __setitem__s  zMessage.__setitem__cCsD|}g}x,|jD]"\}}||kr|||fqW||_dS)N)r+r5r,)r;ro newheadersrvrwrrr __delitem__s  zMessage.__delitem__cCs|dd|jDkS)NcSsg|]\}}|qSr)r+).0rvrwrrr sz(Message.__contains__..)r+r5)r;rorrr __contains__szMessage.__contains__ccsx|jD]\}}|VqWdS)N)r5)r;Zfieldr$rrr__iter__szMessage.__iter__cCsdd|jDS)NcSsg|] \}}|qSrr)r{rvrwrrrr|sz Message.keys..)r5)r;rrrkeyssz Message.keyscsfddjDS)Ncsg|]\}}j||qSr)r4header_fetch_parse)r{rvrw)r;rrr|sz"Message.values..)r5)r;r)r;rvaluess zMessage.valuescsfddjDS)Ncs"g|]\}}|j||fqSr)r4r)r{rvrw)r;rrr|sz!Message.items..)r5)r;r)r;ritemss z Message.itemscCs:|}x,|jD]"\}}||kr|j||SqW|S)N)r+r5r4r)r;rofailobjrvrwrrrrYs  z Message.getcCs|j||fdS)N)r5r,)r;ror$rrrset_rawszMessage.set_rawcCst|jS)N)iterr5copy)r;rrr raw_itemsszMessage.raw_itemscCsLg}|}x2|jD](\}}||kr||j||qW|sH|S|S)N)r+r5r,r4r)r;rorrrvrwrrrget_alls  zMessage.get_allcKstg}xH|D]<\}}|dkr2||ddq|t|dd|qW|dk rb|d|t|||<dS)N_-r)rr,rTr%insert SEMISPACEr_)r;_name_valueZ_paramspartsrvrwrrrrks zMessage.add_headercCs^|}xPttt|j|jD].\}\}}||kr |j|||j|<Pq Wt|dS)N)r+ziprangerr5r4rsKeyError)r;rrr0rvrwrrrreplace_header!s $ zMessage.replace_headercCsHt}|d|}||kr"|St|d}|ddkrDdS|S)Nz content-typer/rz text/plain)objectrYget_default_typerr+r))r;missingr$ctyperrrget_content_type4s  zMessage.get_content_typecCs|}|ddS)Nrr)rsplit)r;rrrrget_content_maintypeLszMessage.get_content_maintypecCs|}|ddS)Nrr)rr)r;rrrrget_content_subtypeUszMessage.get_content_subtypecCs|jS)N)r:)r;rrrr^szMessage.get_default_typecCs ||_dS)N)r:)r;rrrrset_default_typegszMessage.set_default_typec Cst}|||}||kr|Sg}xdt|D]X}y$|dd\}}|}|}Wn tk rt|}d}YnX|||fq,Wt|}|S)Nr'rr) rrYr1rrrqr,rZ decode_params) r;rheaderrr$paramsprortrrr_get_params_preserveps     zMessage._get_params_preserve content-typeTcCs8t}|||}||kr|S|r0dd|DS|SdS)NcSsg|]\}}|t|fqSr)r3)r{rvrwrrrr|sz&Message.get_params..)rr)r;rrr2rrrrr get_paramss  zMessage.get_paramscCsJ||kr |Sx8|||D](\}}||kr|r>t|S|SqW|S)N)rr+r3)r;rrrr2rvrwrrrr[szMessage.get_param Content-Typerc Cst|ts|r|||f}||kr2|dkr2d}n ||}|j||dst|s\t|||}qt|t|||g}nfd}x`|j||dD]N\} } d} | |krt|||} n t| | |} |s| }qt|| g}qW|||kr |r| ||n||=|||<dS)Nz content-typez text/plain)rr)rr2) rrr+rYr[r%rr_rr) r;rr$rrequoter languagerTrZ old_param old_valueZ append_paramrrrrls2   zMessage.set_paramcCs||kr dSd}xR|j||dD]@\}}||kr |sJt|||}q t|t|||g}q W|||kr||=|||<dS)Nr)rr2)rr+r%rr_rY)r;rrrZ new_ctyperrwrrrrjszMessage.del_paramcCs|ddkst|dkr,|d=d|d<||kr@|||<dS|j||d}||=|||<x(|ddD]\}}|||||qjWdS)Nrrz content-typez mime-versionz1.0z MIME-Version)rr2)r)rqr+rrl)r;rXrrrrrwrrrset_types zMessage.set_typecCsDt}|d|d}||kr*|d|d}||kr6|St|S)Nfilenamezcontent-dispositionroz content-type)rr[rcollapse_rfc2231_valuer)r;rrrrrr get_filename&szMessage.get_filenamecCs,t}|d|}||kr|St|S)Nboundary)rr[rrrstrip)r;rrrrrr get_boundary6s  zMessage.get_boundarycCs t}||d}||kr$tdg}d}xB|D]:\}}|dkr^|dd|fd}q2|||fq2W|s|dd|fg}x|jD]\} } | dkrg} x6|D].\} } | dkr| | q| d| | fqWt| } ||j | | q|| | fqW||_dS) Nz content-typezNo Content-Type header foundFrz"%s"Trz%s=%s) rrrZHeaderParseErrorr+r,r5rr_r4rs)r;rrrZ newparamsZfoundpZpkZpvryhrwrrvrtrrr set_boundaryCs2      zMessage.set_boundaryc Cst}|d|}||kr|St|trr|dp2d}y|dd}t||}Wn ttfk rp|d}YnXy|dWntk r|SX|S)Nr rzus-asciirzraw-unicode-escape) rr[rrrr r\r]r+)r;rrr ZpcharsetrHrrrget_content_charsetqs    zMessage.get_content_charsetcsfdd|DS)Ncsg|]}|qSr)r)r{part)rrrr|sz(Message.get_charsets..)walk)r;rr)rr get_charsetsszMessage.get_charsetscCs*|d}|dkrdSt|d}|S)Nzcontent-dispositionr)rYrr+)r;r$c_drrrget_content_dispositions  zMessage.get_content_disposition)r)FrN)FN)NF)N)N)N)NrT)NrT)rTNrF)rT)rT)N)N)N)N)3__name__ __module__ __qualname__r r<r>r=rIrHrLrMrNrRrdrirhrmrnrprxrzr}r~rrrrYrrrrkrrrrrrrrr[rlrjrrrrrrrZemail.iteratorsrrrrrris`    Z /            ! 2   .   cseZdZd2ddZd3fdd ZddZd d Zd d Zd4ddZddddhZ ddZ ddZ ddddZ ddddZ ddZd5dd Zd6d!d"Zd7d#d$Zdd%d&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1ZZS)8MIMEPartNcCs(|dkrddlm}|}t||dS)Nr)default)Z email.policyrrr<)r;r4rrrrr<s zMIMEPart.__init__Fcs0|dkr|jn|}|dkr |j}tj||dS)N)rAr4)r4Zmax_line_lengthsuperr=)r;rBrAr4) __class__rrr=s zMIMEPart.as_stringcCs|j|jjdddS)NT)utf8)r4)r=r4Zclone)r;rrrr>szMIMEPart.__str__cCs |d}|dkrdS|jdkS)Nzcontent-dispositionF attachment)rYZcontent_disposition)r;rrrr is_attachments zMIMEPart.is_attachmentc cs |r dS|d\}}|dkrB||kr>|||fVdS|dkrNdS|dkr~x"|D]}|||EdHq`WdSd|kr|d|fVd}|d}|rx"|D]}|d|kr|}PqW|dkr|}|r|dnd}|dk r|||EdHdS)Nrtext multipartrelatedstartz content-idr)rrrr* iter_parts _find_bodyr[rd) r;rpreferencelistmaintypesubtypeZsubpart candidaterZsubpartsrrrrs6   zMIMEPart._find_bodyrhtmlplaincCsDt|}d}x2|||D]"\}}||kr|}|}|dkrPqW|S)Nr)rr)r;rZ best_prioZbodyZpriorrrrget_bodys zMIMEPart.get_body)rr)rr)rr)r alternativec cs*|d\}}|dks"|dkr&dS|}y |}Wntk rNdSX|dkr|dkr|d}|rd}g}x*|D]"}|d|krd}q|||q|W|r|EdHdS|d |EdHdSg} xT|D]L}|d\}}||f|j kr| s|| kr| |q|VqWdS) NrrrrrFz content-idTr) rrrdrrOr[rYr,pop _body_typesr) r;rrrQrrruZ attachmentsrseenrrriter_attachmentss>         zMIMEPart.iter_attachmentsccs|dkr|EdHdS)Nr)rrd)r;rrrr=s zMIMEPart.iter_parts)content_managercOs"|dkr|jj}|j|f||S)N)r4r get_content)r;rargskwrrrrEszMIMEPart.get_contentcOs&|dkr|jj}|j|f||dS)N)r4r set_content)r;rrrrrrrJszMIMEPart.set_contentc Cs|dkr6|}||f}||kr6td||g}g}x>|jD]4\}}|drl|||fqF|||fqFW|rt||j d} || _|j | _ | g|_ ng|_ ||_d||d<|dk r| d|dS)NrzCannot convert {} to {}zcontent-)r4z multipart/z Content-Typer) rrrqrrr5r+ startswithr,rXr4r7rl) r;rZdisallowed_subtypesrZexisting_subtypeZ keep_headersZ part_headersror$rrrr_make_multipartOs,     zMIMEPart._make_multipartcCs|dd|dS)Nr)rmixed)r)r;rrrr make_relatedjszMIMEPart.make_relatedcCs|dd|dS)Nr)r)r)r;rrrrmake_alternativemszMIMEPart.make_alternativecCs|dd|dS)Nrr)r)r;rrrr make_mixedpszMIMEPart.make_mixed)_dispcOsf|dks||kr(t|d|t||jd}|j|||rXd|krX||d<||dS)NrZmake_)r4zcontent-dispositionzContent-Disposition)rrgetattrrXr4rrR)r;Z_subtyperrrrrrr_add_multipartss    zMIMEPart._add_multipartcOs|jd|ddi|dS)NrrZinline)r)r)r;rrrrr add_related}szMIMEPart.add_relatedcOs|jd||dS)Nr)r)r)r;rrrrradd_alternativeszMIMEPart.add_alternativecOs|jd|ddi|dS)Nrrr)r)r)r;rrrrradd_attachmentszMIMEPart.add_attachmentcCsg|_d|_dS)N)r5r7)r;rrrclearszMIMEPart.clearcCsdd|jD|_d|_dS)NcSs&g|]\}}|ds||fqS)zcontent-)r+r)r{nrwrrrr|sz*MIMEPart.clear_content..)r5r7)r;rrr clear_contentszMIMEPart.clear_content)N)FNN)r)N)N)N)rrrr<r=r>rrrrrrrrrrrrrrrrrr __classcell__rr)rrrs0  7    rcseZdZfddZZS)rcs"tj||d|krd|d<dS)Nz MIME-Versionz1.0)rr)r;rr)rrrrszEmailMessage.set_content)rrrrrrr)rrrs)NT)__all__rerar^iorrZemailrrZemail._policybaserr r r8Zemail._encoded_wordsr rfrcompiler!rr%r1r3rrrrrrrs4      " N`