
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,aà·  ã                   @   sØ   d dgZ ddlZddlZddlZddlmZmZ ddlmZ ddlm	Z	 ddl
mZmZ ddlmZ dd	lmZ ejZd
Ze d¡Zdd„ Zddd„Zdd„ Zdd„ ZG dd „ d ƒZG dd„ deƒZG dd„ deƒZdS )ÚMessageÚEmailMessageé    N)ÚBytesIOÚStringIO)Úutils)Úerrors)ÚPolicyÚcompat32©Úcharset)Údecode_bz; z[ \(\)<>@,;:\\"/\[\]\?=]c                 C   s4   t | ƒ d¡\}}}|s$| ¡ d fS | ¡ | ¡ fS )Nú;)ÚstrÚ	partitionÚstrip)ÚparamÚaÚsepÚb© r   ú2/opt/alt/python38/lib64/python3.8/email/message.pyÚ_splitparam   s    r   Tc                 C   sÈ   |d k	rÀt |ƒdkrÀt|tƒrL| d7 } t |d |d |d ¡}d| |f S z| d¡ W n6 tk
r�   | d7 } t |dd¡}d| |f  Y S X |s t |¡r²d	| t 	|¡f S d| |f S n| S d S )
Nr   Ú*é   é   ú%s=%sÚasciizutf-8Ú z%s="%s")
ÚlenÚ
isinstanceÚtupler   Zencode_rfc2231ÚencodeÚUnicodeEncodeErrorÚ	tspecialsÚsearchÚquote)r   Úvaluer%   r   r   r   Ú_formatparam'   s    	
r'   c                 C   sê   dt | ƒ } g }| d d… dkræ| dd … } |  d¡}|dkrp|  dd|¡|  dd|¡ d rp|  d|d ¡}q6|dk r€t| ƒ}| d |… }d|krÊ| d¡}|d |…  ¡  ¡ d ||d d …  ¡  }| | ¡ ¡ | |d … } q|S )Nr   r   r   ú"z\"r   ú=)r   ÚfindÚcountr   Úindexr   ÚlowerÚappend)ÚsZplistÚendÚfÚir   r   r   Ú_parseparamI   s     
(
,r3   c                 C   s4   t | tƒr&| d | d t | d ¡fS t | ¡S d S )Nr   r   r   )r   r    r   Úunquote)r&   r   r   r   Ú_unquotevalue]   s    
r5   c                   @   s¢  e Zd Zefdd„Zdd„ Zdcdd	„Zd
d„ Zdddd„Zdd„ Z	dd„ Z
dd„ Zdd„ Zdedd„Zdfdd„Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zdgd0d1„Zd2d3„ Zd4d5„ Zdhd6d7„Zd8d9„ Zd:d;„ Zd<d=„ Z d>d?„ Z!d@dA„ Z"dBdC„ Z#dDdE„ Z$dFdG„ Z%didJdK„Z&djdLdM„Z'dkdPdQ„Z(dldRdS„Z)dmdTdU„Z*dndVdW„Z+dodXdY„Z,dZd[„ Z-dpd\d]„Z.dqd^d_„Z/d`da„ Z0ddbl1m2Z2 dS )rr   c                 C   s:   || _ g | _d | _d | _d | _d  | _| _g | _d| _d S )Nú
text/plain)	ÚpolicyÚ_headersÚ	_unixfromÚ_payloadÚ_charsetZpreambleZepilogueÚdefectsÚ_default_type)Úselfr7   r   r   r   Ú__init__x   s    zMessage.__init__c                 C   s   |   ¡ S ©N)Ú	as_string©r>   r   r   r   Ú__str__„   s    zMessage.__str__Fr   Nc                 C   sJ   ddl m} |d kr| jn|}tƒ }||d||d�}|j| |d� | ¡ S )Nr   )Ú	GeneratorF)Úmangle_from_Úmaxheaderlenr7   ©Úunixfrom)Úemail.generatorrD   r7   r   ÚflattenÚgetvalue)r>   rH   rF   r7   rD   ÚfpÚgr   r   r   rA   ‰   s    ýzMessage.as_stringc                 C   s   |   ¡ S r@   )Úas_bytesrB   r   r   r   Ú	__bytes__¡   s    zMessage.__bytes__c                 C   sH   ddl m} |d kr| jn|}tƒ }||d|d�}|j| |d� | ¡ S )Nr   )ÚBytesGeneratorF)rE   r7   rG   )rI   rP   r7   r   rJ   rK   )r>   rH   r7   rP   rL   rM   r   r   r   rN   ¦   s    zMessage.as_bytesc                 C   s   t | jtƒS r@   )r   r:   ÚlistrB   r   r   r   Úis_multipartµ   s    zMessage.is_multipartc                 C   s
   || _ d S r@   ©r9   )r>   rH   r   r   r   Úset_unixfrom¼   s    zMessage.set_unixfromc                 C   s   | j S r@   rS   rB   r   r   r   Úget_unixfrom¿   s    zMessage.get_unixfromc                 C   sF   | j d kr|g| _ n.z| j  |¡ W n tk
r@   tdƒ‚Y nX d S )Nz=Attach is not valid on a message with a non-multipart payload)r:   r.   ÚAttributeErrorÚ	TypeError)r>   Úpayloadr   r   r   ÚattachÅ   s    

zMessage.attachc                 C   sº  |   ¡ r(|rd S |d kr| jS | j| S |d k	rNt| jtƒsNtdt| jƒ ƒ‚| j}t|  dd¡ƒ ¡ }t|tƒrút	 
|¡rÈ| dd¡}|súz| |  dd¡d¡}W qú tk
rÄ   | dd¡}Y qúX n2|rúz| d¡}W n tk
rø   | d¡}Y nX |�s|S |d	k�rt |¡S |d
k�rVtd | ¡ ¡ƒ\}}|D ]}| j | |¡ �q<|S |dk�r¦t|ƒ}	tƒ }
ztj|	|
dd� |
 ¡ W S  tjk
�r¤   | Y S X t|tƒ�r¶|S |S )NzExpected list, got %szcontent-transfer-encodingr   r   Úsurrogateescaper   Úreplaceúraw-unicode-escapezquoted-printableÚbase64ó    )z
x-uuencodeZuuencodeZuuezx-uueT)Úquiet)rR   r:   r   rQ   rW   Útyper   Úgetr-   r   Z_has_surrogatesr!   ÚdecodeÚ	get_paramÚLookupErrorÚUnicodeErrorÚquopriZdecodestringr   ÚjoinÚ
splitlinesr7   Zhandle_defectr   ÚuurK   ÚError)r>   r2   rb   rX   ÚcteZbpayloadr&   r<   ZdefectZin_fileZout_filer   r   r   Úget_payloadÕ   sV    "








zMessage.get_payloadc                 C   sp   t |dƒr:|d kr|| _d S t|tƒs.t|ƒ}| |j¡}t |dƒrT| dd¡| _n|| _|d k	rl|  |¡ d S )Nr!   rb   r   rZ   )Úhasattrr:   r   ÚCharsetr!   Úoutput_charsetrb   Úset_charset)r>   rX   r   r   r   r   Úset_payload/  s    


zMessage.set_payloadc                 C   s  |d kr|   d¡ d | _d S t|tƒs.t|ƒ}|| _d| krH|  dd¡ d| krf| jdd| ¡ d� n|  d| ¡ ¡ || ¡ kr�| | j¡| _d| k�r| 	¡ }z|| ƒ W nj t
k
�r   | j}|rüz| dd	¡}W n  tk
rú   | |j¡}Y nX | |¡| _|  d|¡ Y nX d S )
Nr   úMIME-Versionú1.0úContent-Typer6   r
   zContent-Transfer-Encodingr   rZ   )Ú	del_paramr;   r   rn   Ú
add_headerZget_output_charsetÚ	set_paramZbody_encoder:   Zget_body_encodingrW   r!   re   ro   )r>   r   rk   rX   r   r   r   rp   C  s:    

ÿ
zMessage.set_charsetc                 C   s   | j S r@   )r;   rB   r   r   r   Úget_charsetr  s    zMessage.get_charsetc                 C   s
   t | jƒS r@   )r   r8   rB   r   r   r   Ú__len__z  s    zMessage.__len__c                 C   s
   |   |¡S r@   )ra   ©r>   Únamer   r   r   Ú__getitem__~  s    	zMessage.__getitem__c                 C   sr   | j  |¡}|rX| ¡ }d}| jD ]4\}}| ¡ |kr"|d7 }||kr"td ||¡ƒ‚q"| j | j  ||¡¡ d S )Nr   r   z/There may be at most {} {} headers in a message)r7   Zheader_max_countr-   r8   Ú
ValueErrorÚformatr.   Úheader_store_parse)r>   r{   ÚvalZ	max_countZlnameÚfoundÚkÚvr   r   r   Ú__setitem__‰  s     ÿzMessage.__setitem__c                 C   s@   |  ¡ }g }| jD ]"\}}|  ¡ |kr| ||f¡ q|| _d S r@   )r-   r8   r.   )r>   r{   Ú
newheadersr‚   rƒ   r   r   r   Ú__delitem__›  s    zMessage.__delitem__c                 C   s   |  ¡ dd„ | jD ƒkS )Nc                 S   s   g | ]\}}|  ¡ ‘qS r   )r-   ©Ú.0r‚   rƒ   r   r   r   Ú
<listcomp>¨  s     z(Message.__contains__.<locals>.<listcomp>)r-   r8   rz   r   r   r   Ú__contains__§  s    zMessage.__contains__c                 c   s   | j D ]\}}|V  qd S r@   ©r8   )r>   Zfieldr&   r   r   r   Ú__iter__ª  s    zMessage.__iter__c                 C   s   dd„ | j D ƒS )Nc                 S   s   g | ]\}}|‘qS r   r   r‡   r   r   r   r‰   ¶  s     z Message.keys.<locals>.<listcomp>r‹   rB   r   r   r   Úkeys®  s    zMessage.keysc                    s   ‡ fdd„ˆ j D ƒS )Nc                    s   g | ]\}}ˆ j  ||¡‘qS r   ©r7   Úheader_fetch_parser‡   rB   r   r   r‰   À  s   ÿz"Message.values.<locals>.<listcomp>r‹   rB   r   rB   r   Úvalues¸  s    
ÿzMessage.valuesc                    s   ‡ fdd„ˆ j D ƒS )Nc                    s"   g | ]\}}|ˆ j  ||¡f‘qS r   rŽ   r‡   rB   r   r   r‰   Ë  s   ÿz!Message.items.<locals>.<listcomp>r‹   rB   r   rB   r   ÚitemsÃ  s    
ÿzMessage.itemsc                 C   s:   |  ¡ }| jD ]&\}}|  ¡ |kr| j ||¡  S q|S r@   )r-   r8   r7   r�   )r>   r{   Úfailobjr‚   rƒ   r   r   r   ra   Î  s
    zMessage.getc                 C   s   | j  ||f¡ d S r@   )r8   r.   )r>   r{   r&   r   r   r   Úset_rawß  s    zMessage.set_rawc                 C   s   t | j ¡ ƒS r@   )Úiterr8   ÚcopyrB   r   r   r   Ú	raw_itemsæ  s    zMessage.raw_itemsc                 C   sH   g }|  ¡ }| jD ](\}}|  ¡ |kr| | j ||¡¡ q|sD|S |S r@   )r-   r8   r.   r7   r�   )r>   r{   r’   r�   r‚   rƒ   r   r   r   Úget_allñ  s    	zMessage.get_allc                 K   sp   g }|  ¡ D ]<\}}|d kr0| | dd¡¡ q| t| dd¡|ƒ¡ q|d k	r^| d|¡ t |¡| |< d S )NÚ_ú-r   )r‘   r.   r[   r'   ÚinsertÚ	SEMISPACErg   )r>   Ú_nameÚ_valueZ_paramsÚpartsr‚   rƒ   r   r   r   rv     s    zMessage.add_headerc                 C   s\   |  ¡ }ttt| jƒƒ| jƒD ]0\}\}}|  ¡ |kr| j ||¡| j|<  qXqt|ƒ‚d S r@   )r-   ÚzipÚranger   r8   r7   r   ÚKeyError)r>   rœ   r�   r2   r‚   rƒ   r   r   r   Úreplace_header!  s    "zMessage.replace_headerc                 C   sH   t ƒ }|  d|¡}||kr"|  ¡ S t|ƒd  ¡ }| d¡dkrDdS |S )Núcontent-typer   ú/r   r6   )Úobjectra   Úget_default_typer   r-   r+   )r>   Úmissingr&   Úctyper   r   r   Úget_content_type4  s    zMessage.get_content_typec                 C   s   |   ¡ }| d¡d S )Nr¤   r   ©r©   Úsplit©r>   r¨   r   r   r   Úget_content_maintypeL  s    zMessage.get_content_maintypec                 C   s   |   ¡ }| d¡d S )Nr¤   r   rª   r¬   r   r   r   Úget_content_subtypeU  s    zMessage.get_content_subtypec                 C   s   | j S r@   ©r=   rB   r   r   r   r¦   ^  s    zMessage.get_default_typec                 C   s
   || _ d S r@   r¯   r¬   r   r   r   Úset_default_typeg  s    zMessage.set_default_typec           	   	   C   s’   t ƒ }|  ||¡}||kr|S g }t|ƒD ]X}z$| dd¡\}}| ¡ }| ¡ }W n  tk
rr   | ¡ }d}Y nX | ||f¡ q*t |¡}|S )Nr)   r   r   )	r¥   ra   r3   r«   r   r}   r.   r   Zdecode_params)	r>   r’   Úheaderr§   r&   ÚparamsÚpr{   r€   r   r   r   Ú_get_params_preservep  s     

zMessage._get_params_preserver£   Tc                 C   s8   t ƒ }|  ||¡}||kr|S |r0dd„ |D ƒS |S d S )Nc                 S   s   g | ]\}}|t |ƒf‘qS r   )r5   r‡   r   r   r   r‰   —  s     z&Message.get_params.<locals>.<listcomp>)r¥   r´   )r>   r’   r±   r4   r§   r²   r   r   r   Ú
get_params…  s    zMessage.get_paramsc                 C   sN   || kr|S |   ||¡D ]0\}}| ¡ | ¡ kr|r@t|ƒ  S |  S q|S r@   )r´   r-   r5   )r>   r   r’   r±   r4   r‚   rƒ   r   r   r   rc   ›  s    
zMessage.get_paramrt   r   c                 C   s
  t |tƒs|r|||f}|| kr2| ¡ dkr2d}n
|  |¡}| j||d�st|s\t|||ƒ}qÖt |t|||ƒg¡}nbd}| j||d�D ]N\}	}
d}|	 ¡ | ¡ kr°t|||ƒ}nt|	|
|ƒ}|sÆ|}q†t ||g¡}q†||  |¡k�r|rø|  	||¡ n| |= || |< d S )Nr£   r6   )r±   r   ©r±   r4   )
r   r    r-   ra   rc   r'   r›   rg   rµ   r¢   )r>   r   r&   r±   Úrequoter   Zlanguager[   r¨   Z	old_paramÚ	old_valueZappend_paramr   r   r   rw   ½  s6    

ÿÿzMessage.set_paramc                 C   s€   || krd S d}| j ||d�D ]@\}}| ¡ | ¡ kr|sHt|||ƒ}qt |t|||ƒg¡}q||  |¡kr|| |= || |< d S )Nr   r¶   )rµ   r-   r'   r›   rg   ra   )r>   r   r±   r·   Z	new_ctyper³   rƒ   r   r   r   ru   ð  s    
ÿzMessage.del_paramc                 C   s†   |  d¡dkst‚| ¡ dkr,| d= d| d< || kr@|| |< d S | j||d�}| |= || |< |dd … D ]\}}|  ||||¡ qhd S )Nr¤   r   r£   zmime-versionrs   rr   r¶   )r+   r}   r-   rµ   rw   )r>   r`   r±   r·   r²   r³   rƒ   r   r   r   Úset_type  s    zMessage.set_typec                 C   sD   t ƒ }|  d|d¡}||kr*|  d|d¡}||kr6|S t |¡ ¡ S )NÚfilenameúcontent-dispositionr{   r£   )r¥   rc   r   Úcollapse_rfc2231_valuer   )r>   r’   r§   rº   r   r   r   Úget_filename&  s    zMessage.get_filenamec                 C   s,   t ƒ }|  d|¡}||kr|S t |¡ ¡ S )NÚboundary)r¥   rc   r   r¼   Úrstrip)r>   r’   r§   r¾   r   r   r   Úget_boundary6  s
    zMessage.get_boundaryc                 C   s  t ƒ }|  |d¡}||kr$t d¡‚g }d}|D ]:\}}| ¡ dkr\| dd| f¡ d}q0| ||f¡ q0|s‚| dd| f¡ g }| jD ]z\}	}
|	 ¡ dkrøg }|D ].\}}
|
dkrÄ| |¡ q¨| d||
f ¡ q¨t |¡}| | j	 
|	|¡¡ qŒ| |	|
f¡ qŒ|| _d S )	Nr£   zNo Content-Type header foundFr¾   z"%s"Tr   r   )r¥   r´   r   ZHeaderParseErrorr-   r.   r8   r›   rg   r7   r   )r>   r¾   r§   r²   Z	newparamsZfoundpZpkZpvr…   Úhrƒ   rž   r‚   r€   r   r   r   Úset_boundaryC  s2    


zMessage.set_boundaryc              	   C   s¢   t ƒ }|  d|¡}||kr|S t|tƒrr|d p2d}z|d  d¡}t||ƒ}W n  ttfk
rp   |d }Y nX z| d¡ W n tk
r˜   | Y S X | ¡ S )Nr   r   zus-asciir   r\   )	r¥   rc   r   r    r!   r   rd   re   r-   )r>   r’   r§   r   ZpcharsetrN   r   r   r   Úget_content_charsetq  s     

zMessage.get_content_charsetc                    s   ‡ fdd„|   ¡ D ƒS )Nc                    s   g | ]}|  ˆ ¡‘qS r   )rÃ   )rˆ   Úpart©r’   r   r   r‰   Ÿ  s     z(Message.get_charsets.<locals>.<listcomp>©Úwalk)r>   r’   r   rÅ   r   Úget_charsets�  s    zMessage.get_charsetsc                 C   s*   |   d¡}|d krd S t|ƒd  ¡ }|S )Nr»   r   )ra   r   r-   )r>   r&   Úc_dr   r   r   Úget_content_disposition¡  s
    
zMessage.get_content_dispositionrÆ   )Fr   N)FN)NF)N)N)N)Nr£   T)Nr£   T)rt   TNr   F)r£   T)rt   T)N)N)N)N)3Ú__name__Ú
__module__Ú__qualname__r	   r?   rC   rA   rO   rN   rR   rT   rU   rY   rl   rq   rp   rx   ry   r|   r„   r†   rŠ   rŒ   r�   r�   r‘   ra   r“   r–   r—   rv   r¢   r©   r­   r®   r¦   r°   r´   rµ   rc   rw   ru   r¹   r½   rÀ   rÂ   rÃ   rÈ   rÊ   Zemail.iteratorsrÇ   r   r   r   r   r   i   sh   


Z
/


				
  ÿ
"      ÿ
3

 

.

c                       sÞ   e Zd Zd2dd„Zd3‡ fdd„	Zdd„ Zd	d
„ Zdd„ Zd4dd„ZddddhZ	dd„ Z
dd„ Zddœdd„Zddœdd„Zdd„ Zd5dd „Zd6d!d"„Zd7d#d$„Zdd%œd&d'„Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Z‡  ZS )8ÚMIMEPartNc                 C   s(   |d krddl m} |}t | |¡ d S )Nr   )Údefault)Zemail.policyrÏ   r   r?   )r>   r7   rÏ   r   r   r   r?   ³  s    zMIMEPart.__init__Fc                    s0   |d kr| j n|}|d kr |j}tƒ j||d�S )N)rF   r7   )r7   Zmax_line_lengthÚsuperrA   )r>   rH   rF   r7   ©Ú	__class__r   r   rA   º  s    zMIMEPart.as_stringc                 C   s   | j | jjdd�d�S )NT)Úutf8©r7   )rA   r7   ZclonerB   r   r   r   rC   Ê  s    zMIMEPart.__str__c                 C   s    |   d¡}|d krdS |jdkS )Nr»   FÚ
attachment)ra   Zcontent_disposition)r>   rÉ   r   r   r   Úis_attachmentÍ  s    
zMIMEPart.is_attachmentc           	      c   s  |  ¡ rd S | ¡  d¡\}}|dkrB||kr>| |¡|fV  d S |dkrNd S |dkrz| ¡ D ]}|  ||¡E d H  q^d S d|kr’| d¡|fV  d }| d¡}|rÆ| ¡ D ]}|d |kr¬|} qÆq¬|d kræ| ¡ }|râ|d nd }|d k	�r|  ||¡E d H  d S )Nr¤   ÚtextÚ	multipartÚrelatedÚstartú
content-idr   )rÖ   r©   r«   r,   Ú
iter_partsÚ
_find_bodyrc   rl   )	r>   rÄ   ÚpreferencelistÚmaintypeÚsubtypeZsubpartÚ	candidaterÚ   Zsubpartsr   r   r   rÝ   Ñ  s6    

zMIMEPart._find_body©rÙ   ÚhtmlÚplainc                 C   sB   t |ƒ}d }|  | |¡D ]$\}}||k r|}|}|dkr q>q|S )Nr   )r   rÝ   )r>   rÞ   Z	best_prioZbodyZpriorÄ   r   r   r   Úget_bodyî  s    
zMIMEPart.get_body)r×   rä   )r×   rã   )rØ   rÙ   )rØ   Úalternativec           
      c   s$  |   ¡  d¡\}}|dks"|dkr&d S |  ¡ }z| ¡ }W n tk
rP   Y d S X |dkrÊ|dkrÊ|  d¡}|r²d}g }|D ]"}| d¡|kr”d}q|| |¡ q||r²|E d H  d S | d	¡ |E d H  d S g }	|D ]L}|  ¡  d¡\}}||f| j	k�r| 
¡ �s||	k�r|	 |¡ qÒ|V  qÒd S )
Nr¤   rØ   ræ   rÙ   rÚ   FrÛ   Tr   )r©   r«   rl   r•   rV   rc   ra   r.   ÚpopÚ_body_typesrÖ   )
r>   rß   rà   rX   rž   rÚ   r�   ZattachmentsrÄ   Úseenr   r   r   Úiter_attachments  sD    



ÿÿ
zMIMEPart.iter_attachmentsc                 c   s   |   ¡ dkr|  ¡ E d H  d S )NrØ   )r­   rl   rB   r   r   r   rÜ   =  s    zMIMEPart.iter_parts)Úcontent_managerc                O   s"   |d kr| j j}|j| f|ž|ŽS r@   )r7   rë   Úget_content©r>   rë   ÚargsÚkwr   r   r   rì   E  s    zMIMEPart.get_contentc                O   s&   |d kr| j j}|j| f|ž|Ž d S r@   )r7   rë   Úset_contentrí   r   r   r   rð   J  s    zMIMEPart.set_contentc           
      C   sÖ   |   ¡ dkr6|  ¡ }||f }||kr6td ||¡ƒ‚g }g }| jD ]4\}}| ¡  d¡rj| ||f¡ qD| ||f¡ qD|r¦t| ƒ| j	d�}	||	_| j
|	_
|	g| _
ng | _
|| _d| | d< |d k	rÒ|  d|¡ d S )NrØ   zCannot convert {} to {}úcontent-rÔ   z
multipart/rt   r¾   )r­   r®   r}   r~   r8   r-   Ú
startswithr.   r`   r7   r:   rw   )
r>   rà   Zdisallowed_subtypesr¾   Zexisting_subtypeZkeep_headersZpart_headersr{   r&   rÄ   r   r   r   Ú_make_multipartO  s0    
 ÿ
zMIMEPart._make_multipartc                 C   s   |   dd|¡ d S )NrÙ   )ræ   Úmixed©ró   ©r>   r¾   r   r   r   Úmake_relatedj  s    zMIMEPart.make_relatedc                 C   s   |   dd|¡ d S )Nræ   )rô   rõ   rö   r   r   r   Úmake_alternativem  s    zMIMEPart.make_alternativec                 C   s   |   dd|¡ d S )Nrô   r   rõ   rö   r   r   r   Ú
make_mixedp  s    zMIMEPart.make_mixed)Ú_dispc                O   sf   |   ¡ dks|  ¡ |kr(t| d| ƒƒ  t| ƒ| jd�}|j||Ž |rXd|krX||d< |  |¡ d S )NrØ   Zmake_rÔ   r»   zContent-Disposition)r­   r®   Úgetattrr`   r7   rð   rY   )r>   Z_subtyperú   rî   rï   rÄ   r   r   r   Ú_add_multiparts  s    
ÿzMIMEPart._add_multipartc                 O   s   | j d|žddi|—Ž d S )NrÙ   rú   Zinline)rÙ   ©rü   ©r>   rî   rï   r   r   r   Úadd_related}  s    zMIMEPart.add_relatedc                 O   s   | j d|ž|Ž d S )Nræ   )ræ   rý   rþ   r   r   r   Úadd_alternative€  s    zMIMEPart.add_alternativec                 O   s   | j d|žddi|—Ž d S )Nrô   rú   rÕ   )rô   rý   rþ   r   r   r   Úadd_attachmentƒ  s    zMIMEPart.add_attachmentc                 C   s   g | _ d | _d S r@   ©r8   r:   rB   r   r   r   Úclear†  s    zMIMEPart.clearc                 C   s   dd„ | j D ƒ| _ d | _d S )Nc                 S   s&   g | ]\}}|  ¡  d ¡s||f‘qS )rñ   )r-   rò   )rˆ   Únrƒ   r   r   r   r‰   ‹  s    ÿz*MIMEPart.clear_content.<locals>.<listcomp>r  rB   r   r   r   Úclear_contentŠ  s    zMIMEPart.clear_content)N)FNN)râ   )N)N)N)rË   rÌ   rÍ   r?   rA   rC   rÖ   rÝ   rå   rè   rê   rÜ   rì   rð   ró   r÷   rø   rù   rü   rÿ   r   r  r  r  Ú__classcell__r   r   rÑ   r   rÎ   ±  s2   

ý7



rÎ   c                       s   e Zd Z‡ fdd„Z‡  ZS )r   c                    s"   t ƒ j||Ž d| krd| d< d S )Nrr   rs   )rÐ   rð   rþ   rÑ   r   r   rð   ’  s    zEmailMessage.set_content)rË   rÌ   rÍ   rð   r  r   r   rÑ   r   r   �  s   )NT)Ú__all__Úreri   rf   Úior   r   Zemailr   r   Zemail._policybaser   r	   r   r;   Zemail._encoded_wordsr   rn   r›   Úcompiler#   r   r'   r3   r5   r   rÎ   r   r   r   r   r   Ú<module>   s4   


"      N `