509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \¶  ã               @   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j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 | ƒjdƒ\}}}|s$|jƒ d fS |jƒ |jƒ fS )Nú;)ÚstrÚ	partitionÚstrip)ÚparamÚaÚsepÚb© r   ú%/usr/lib64/python3.6/email/message.pyÚ_splitparam   s    r   Tc             C   sÄ   |d k	r¼t |ƒdkr¼t|tƒrL| d7 } tj|d |d |d ƒ}d| |f S y|jdƒ W n2 tk
rŒ   | d7 } tj|ddƒ}d| |f S X |sœtj|ƒr®d	| tj	|ƒf S d| |f S n| S d S )
Nr   Ú*é   é   z%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 }xÜ| d d… dkrì| dd … } | jdƒ}x<|dkrt| jdd|ƒ| jdd|ƒ d rt| jd|d ƒ}q:W |dk r†t| ƒ}| d |… }d|krÐ|jdƒ}|d |… jƒ jƒ d ||d d … jƒ  }|j|jƒ ƒ | |d … } qW |S )Nr   r   r   ú"z\"r   ú=)r   ÚfindÚcountr   Úindexr   ÚlowerÚappend)ÚsZplistÚendÚfÚir   r   r   Ú_parseparamI   s     
*
,r1   c             C   s4   t | tƒr&| d | d tj| d ƒfS tj| ƒS d S )Nr   r   r   )r   r   r   Úunquote)r$   r   r   r   Ú_unquotevalue]   s    
r3   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 )Nz
text/plain)	ÚpolicyÚ_headersÚ	_unixfromÚ_payloadÚ_charsetZpreambleZepilogueÚdefectsÚ_default_type)Úselfr4   r   r   r   Ú__init__x   s    zMessage.__init__c             C   s   | j ƒ 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� |jƒ S )Nr   )Ú	GeneratorF)Úmangle_from_Úmaxheaderlenr4   )Úunixfrom)Úemail.generatorr?   r4   r   ÚflattenÚgetvalue)r;   rB   rA   r4   r?   ÚfpÚgr   r   r   r=   ‰   s    zMessage.as_stringc             C   s   | j ƒ S )N)Úas_bytes)r;   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� |jƒ S )Nr   )ÚBytesGeneratorF)r@   r4   )rB   )rC   rJ   r4   r   rD   rE   )r;   rB   r4   rJ   rF   rG   r   r   r   rH   ¦   s    zMessage.as_bytesc             C   s   t | jtƒS )N)r   r7   Úlist)r;   r   r   r   Úis_multipartµ   s    zMessage.is_multipartc             C   s
   || _ d S )N)r6   )r;   rB   r   r   r   Úset_unixfrom¼   s    zMessage.set_unixfromc             C   s   | j S )N)r6   )r;   r   r   r   Úget_unixfrom¿   s    zMessage.get_unixfromc             C   sF   | j d kr|g| _ n.y| j 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)r7   r,   ÚAttributeErrorÚ	TypeError)r;   Úpayloadr   r   r   ÚattachÅ   s    

zMessage.attachc             C   sÀ  | j ƒ r(|rd S |d kr| jS | j| S |d k	rPt| jtƒ rPtdt| jƒ ƒ‚| j}t| jddƒƒjƒ }t|tƒ�rt	j
|ƒrÌ|jddƒ}|sÊy|j| jddƒdƒ}W n  tk
rÈ   |jddƒ}Y nX n6|�ry|jdƒ}W n  tk
�r    |jdƒ}Y nX |�s|S |d	k�r tj|ƒS |d
k�rbtdj|jƒ ƒƒ\}}x|D ]}| jj| |ƒ �qFW |S |dk�r¬t|ƒ}	tƒ }
ytj|	|
dd� |
jƒ S  tjk
�rª   |S X t|tƒ�r¼|S |S )NzExpected list, got %szcontent-transfer-encodingr   r   Úsurrogateescaper
   Úreplacezraw-unicode-escapezquoted-printableÚbase64ó    ú
x-uuencodeÚuuencodeÚuueúx-uueT)Úquiet)rW   rX   rY   rZ   )rL   r7   r   rK   rP   Útyper   Úgetr+   r   Z_has_surrogatesr   ÚdecodeÚ	get_paramÚLookupErrorÚUnicodeErrorÚquopriZdecodestringr   ÚjoinÚ
splitlinesr4   Zhandle_defectr   ÚuurE   ÚError)r;   r0   r^   rQ   ÚcteZbpayloadr$   r9   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|jƒ}t |dƒrT|jddƒ| _n|| _|d k	rl| j|ƒ d S )Nr   r^   r   rS   )Úhasattrr7   r   ÚCharsetr   Úoutput_charsetr^   Úset_charset)r;   rQ   r
   r   r   r   Úset_payload/  s    


zMessage.set_payloadc             C   s  |d kr| j dƒ d | _d S t|tƒs.t|ƒ}|| _d| krH| jddƒ d| krf| jdd|jƒ d� n| jd|jƒ ƒ ||jƒ kr�|j| jƒ| _d| k�r|j	ƒ }y|| ƒ W nj t
k
�r   | j}|rüy|jdd	ƒ}W n  tk
rú   |j|jƒ}Y nX |j|ƒ| _| jd|ƒ Y nX d S )
Nr
   zMIME-Versionz1.0zContent-Typez
text/plain)r
   zContent-Transfer-Encodingr   rS   )Ú	del_paramr8   r   rj   Ú
add_headerZget_output_charsetÚ	set_paramZbody_encoder7   Zget_body_encodingrP   r   ra   rk   )r;   r
   rg   rQ   r   r   r   rl   C  s8    


zMessage.set_charsetc             C   s   | j S )N)r8   )r;   r   r   r   Úget_charsetr  s    zMessage.get_charsetc             C   s
   t | jƒS )N)r   r5   )r;   r   r   r   Ú__len__z  s    zMessage.__len__c             C   s
   | j |ƒS )N)r]   )r;   Únamer   r   r   Ú__getitem__~  s    	zMessage.__getitem__c             C   sv   | j j|ƒ}|r\|jƒ }d}x>| jD ]4\}}|jƒ |kr$|d7 }||kr$tdj||ƒƒ‚q$W | jj| j j||ƒƒ d S )Nr   r   z/There may be at most {} {} headers in a message)r4   Zheader_max_countr+   r5   Ú
ValueErrorÚformatr,   Úheader_store_parse)r;   rs   ÚvalZ	max_countZlnameÚfoundÚkÚvr   r   r   Ú__setitem__‰  s    zMessage.__setitem__c             C   sD   |j ƒ }g }x,| jD ]"\}}|j ƒ |kr|j||fƒ qW || _d S )N)r+   r5   r,   )r;   rs   Ú
newheadersrz   r{   r   r   r   Ú__delitem__›  s    zMessage.__delitem__c             C   s   |j ƒ dd„ | jD ƒkS )Nc             S   s   g | ]\}}|j ƒ ‘qS r   )r+   )Ú.0rz   r{   r   r   r   ú
<listcomp>¨  s    z(Message.__contains__.<locals>.<listcomp>)r+   r5   )r;   rs   r   r   r   Ú__contains__§  s    zMessage.__contains__c             c   s   x| j D ]\}}|V  qW d S )N)r5   )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   rz   r{   r   r   r   r€   ¶  s    z Message.keys.<locals>.<listcomp>)r5   )r;   r   r   r   Úkeys®  s    zMessage.keysc                s   ‡ fdd„ˆ j D ƒS )Nc                s   g | ]\}}ˆ j j||ƒ‘qS r   )r4   Úheader_fetch_parse)r   rz   r{   )r;   r   r   r€   À  s   z"Message.values.<locals>.<listcomp>)r5   )r;   r   )r;   r   Úvalues¸  s    
zMessage.valuesc                s   ‡ fdd„ˆ j D ƒS )Nc                s"   g | ]\}}|ˆ j j||ƒf‘qS r   )r4   r„   )r   rz   r{   )r;   r   r   r€   Ë  s   z!Message.items.<locals>.<listcomp>)r5   )r;   r   )r;   r   ÚitemsÃ  s    
zMessage.itemsc             C   s:   |j ƒ }x,| jD ]"\}}|j ƒ |kr| jj||ƒS qW |S )N)r+   r5   r4   r„   )r;   rs   Úfailobjrz   r{   r   r   r   r]   Î  s
    zMessage.getc             C   s   | j j||fƒ d S )N)r5   r,   )r;   rs   r$   r   r   r   Úset_rawß  s    zMessage.set_rawc             C   s   t | jjƒ ƒS )N)Úiterr5   Úcopy)r;   r   r   r   Ú	raw_itemsæ  s    zMessage.raw_itemsc             C   sL   g }|j ƒ }x2| jD ](\}}|j ƒ |kr|j| jj||ƒƒ qW |sH|S |S )N)r+   r5   r,   r4   r„   )r;   rs   r‡   r…   rz   r{   r   r   r   Úget_allñ  s    	zMessage.get_allc             K   st   g }xH|j ƒ D ]<\}}|d kr2|j|jddƒƒ q|jt|jddƒ|ƒƒ qW |d k	rb|jd|ƒ tj|ƒ| |< d S )NÚ_ú-r   )r†   r,   rT   r%   ÚinsertÚ	SEMISPACErc   )r;   Ú_nameÚ_valueZ_paramsÚpartsrz   r{   r   r   r   ro     s    zMessage.add_headerc             C   s^   |j ƒ }xPttt| jƒƒ| jƒD ].\}\}}|j ƒ |kr | jj||ƒ| j|< P q W t|ƒ‚d S )N)r+   ÚzipÚranger   r5   r4   rw   ÚKeyError)r;   r‘   r’   r0   rz   r{   r   r   r   Úreplace_header!  s    $zMessage.replace_headerc             C   sH   t ƒ }| jd|ƒ}||kr"| jƒ S t|ƒd jƒ }|jdƒdkrDdS |S )Nzcontent-typer   ú/r   z
text/plain)Úobjectr]   Úget_default_typer   r+   r)   )r;   Úmissingr$   Úctyper   r   r   Úget_content_type4  s    zMessage.get_content_typec             C   s   | j ƒ }|jdƒd S )Nr˜   r   )r�   Úsplit)r;   rœ   r   r   r   Úget_content_maintypeL  s    zMessage.get_content_maintypec             C   s   | j ƒ }|jdƒd S )Nr˜   r   )r�   rž   )r;   rœ   r   r   r   Úget_content_subtypeU  s    zMessage.get_content_subtypec             C   s   | j S )N)r:   )r;   r   r   r   rš   ^  s    zMessage.get_default_typec             C   s
   || _ d S )N)r:   )r;   rœ   r   r   r   Úset_default_typeg  s    zMessage.set_default_typec       	      C   s–   t ƒ }| j||ƒ}||kr|S g }xdt|ƒD ]X}y$|jddƒ\}}|jƒ }|jƒ }W n  tk
rt   |jƒ }d}Y nX |j||fƒ q,W tj|ƒ}|S )Nr'   r   r   )	r™   r]   r1   rž   r   ru   r,   r   Zdecode_params)	r;   r‡   Úheaderr›   r$   ÚparamsÚprs   rx   r   r   r   Ú_get_params_preservep  s     

zMessage._get_params_preserveúcontent-typeTc             C   s8   t ƒ }| j||ƒ}||kr|S |r0dd„ |D ƒS |S d S )Nc             S   s   g | ]\}}|t |ƒf‘qS r   )r3   )r   rz   r{   r   r   r   r€   —  s    z&Message.get_params.<locals>.<listcomp>)r™   r¥   )r;   r‡   r¢   r2   r›   r£   r   r   r   Ú
get_params…  s    zMessage.get_paramsc             C   sJ   || kr|S x8| j ||ƒD ](\}}|jƒ |jƒ kr|r>t|ƒS |S qW |S )N)r¥   r+   r3   )r;   r   r‡   r¢   r2   rz   r{   r   r   r   r_   ›  s    zMessage.get_paramúContent-Typer   c             C   s  t |tƒ r|r|||f}|| kr4|jƒ dkr4d}n
| j|ƒ}| j||d�sv|s^t|||ƒ}qÜtj|t|||ƒgƒ}nfd}x`| j||d�D ]N\}	}
d}|	jƒ |jƒ kr´t|||ƒ}nt|	|
|ƒ}|sÊ|}qŠtj||gƒ}qŠW || j|ƒk�r|�r | j	||ƒ n| |= || |< d S )Nzcontent-typez
text/plain)r¢   r   )r¢   r2   )
r   r   r+   r]   r_   r%   r�   rc   r§   r—   )r;   r   r$   r¢   Úrequoter
   ZlanguagerT   rœ   Z	old_paramZ	old_valueZappend_paramr   r   r   rp   ½  s2    

zMessage.set_paramc             C   s„   || krd S d}xR| j ||d�D ]@\}}|jƒ |jƒ kr |sJt|||ƒ}q tj|t|||ƒgƒ}q W || j|ƒkr€| |= || |< d S )Nr   )r¢   r2   )r§   r+   r%   r�   rc   r]   )r;   r   r¢   r©   Z	new_ctyper¤   r{   r   r   r   rn   ð  s    zMessage.del_paramc             C   sŠ   |j dƒdkst‚|jƒ dkr,| d= d| d< || kr@|| |< d S | j||d�}| |= || |< x(|dd … D ]\}}| j||||ƒ qjW d S )Nr˜   r   zcontent-typezmime-versionz1.0zMIME-Version)r¢   r2   )r)   ru   r+   r§   rp   )r;   r\   r¢   r©   r£   r¤   r{   r   r   r   Úset_type  s    zMessage.set_typec             C   sD   t ƒ }| jd|dƒ}||kr*| jd|dƒ}||kr6|S tj|ƒjƒ S )NÚfilenamezcontent-dispositionrs   zcontent-type)r™   r_   r   Úcollapse_rfc2231_valuer   )r;   r‡   r›   r«   r   r   r   Úget_filename&  s    zMessage.get_filenamec             C   s,   t ƒ }| jd|ƒ}||kr|S tj|ƒjƒ S )NÚboundary)r™   r_   r   r¬   Úrstrip)r;   r‡   r›   r®   r   r   r   Úget_boundary6  s
    zMessage.get_boundaryc             C   s   t ƒ }| j|dƒ}||kr$tjdƒ‚g }d}xB|D ]:\}}|jƒ dkr^|jdd| fƒ d}q2|j||fƒ q2W |s†|jdd| fƒ g }xŠ| jD ]€\}	}
|	jƒ dk�rg }x6|D ].\}}
|
dkrÎ|j|ƒ q²|jd||
f ƒ q²W tj|ƒ}|j| j	j
|	|ƒƒ q’|j|	|
fƒ q’W || _d S )	Nzcontent-typezNo Content-Type header foundFr®   z"%s"Tr   z%s=%s)r™   r¥   r   ZHeaderParseErrorr+   r,   r5   r�   rc   r4   rw   )r;   r®   r›   r£   Z	newparamsZfoundpZpkZpvr}   Úhr{   r“   rz   rx   r   r   r   Úset_boundaryC  s2    


zMessage.set_boundaryc             C   sž   t ƒ }| jd|ƒ}||kr|S t|tƒrr|d p2d}y|d jdƒ}t||ƒ}W n  ttfk
rp   |d }Y nX y|jdƒ W n tk
r”   |S X |jƒ S )Nr
   r   zus-asciir   zraw-unicode-escape)	r™   r_   r   r   r   r   r`   ra   r+   )r;   r‡   r›   r
   ZpcharsetrH   r   r   r   Úget_content_charsetq  s     
zMessage.get_content_charsetc                s   ‡ fdd„| j ƒ D ƒS )Nc                s   g | ]}|j ˆ ƒ‘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*   | j dƒ}|d krd S t|ƒd jƒ }|S )Nzcontent-dispositionr   )r]   r   r+   )r;   r$   Úc_dr   r   r   Úget_content_disposition¡  s
    
zMessage.get_content_disposition)rµ   )Fr   N)FN)NF)N)N)N)Nr¦   T)Nr¦   T)r¨   TNr   F)r¦   T)r¨   T)N)N)N)N)3Ú__name__Ú
__module__Ú__qualname__r	   r<   r>   r=   rI   rH   rL   rM   rN   rR   rh   rm   rl   rq   rr   rt   r|   r~   r�   r‚   rƒ   r…   r†   r]   rˆ   r‹   rŒ   ro   r—   r�   rŸ   r    rš   r¡   r¥   r§   r_   rp   rn   rª   r­   r°   r²   r³   r¶   r¸   Zemail.iteratorsrµ   r   r   r   r   r   i   s`   


Z
/


				
 
! 
2

 

.

c                   sÞ   e Zd Zd3dd„Zd4‡ fdd„	Zdd„ Zd	d
„ Zdd„ Zd6dd„Zd7d8d9d:hZ	dd„ Z
dd„ Zddœdd„Zddœdd„Zdd„ Zd;d d!„Zd<d"d#„Zd=d$d%„Zdd&œd'd(„Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Z‡  ZS )>ÚMIMEPartNc             C   s(   |d krddl m} |}tj| |ƒ d S )Nr   )Údefault)Zemail.policyr½   r   r<   )r;   r4   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)rA   r4   )r4   Zmax_line_lengthÚsuperr=   )r;   rB   rA   r4   )Ú	__class__r   r   r=   º  s    zMIMEPart.as_stringc             C   s   | j | jjdd�d�S )NT)Úutf8)r4   )r=   r4   Zclone)r;   r   r   r   r>   Ê  s    zMIMEPart.__str__c             C   s    | j dƒ}|d krdS |jdkS )Nzcontent-dispositionFÚ
attachment)r]   Zcontent_disposition)r;   r·   r   r   r   Úis_attachmentÍ  s    
zMIMEPart.is_attachmentc       	      c   s  |j ƒ rd S |jƒ jdƒ\}}|dkrB||kr>|j|ƒ|fV  d S |dkrNd S |dkr~x"|jƒ D ]}| j||ƒE d H  q`W d S d|kr–|jdƒ|fV  d }|jdƒ}|rÌx"|jƒ D ]}|d |kr²|}P q²W |d krì|jƒ }|rè|d nd }|d k	�r| j||ƒE d H  d S )Nr˜   ÚtextÚ	multipartÚrelatedÚstartz
content-idr   )rÂ   r�   rž   r*   Ú
iter_partsÚ
_find_bodyr_   rh   )	r;   r´   ÚpreferencelistÚmaintypeÚsubtypeZsubpartÚ	candidaterÆ   Zsubpartsr   r   r   rÈ   Ñ  s6    

zMIMEPart._find_bodyrÅ   ÚhtmlÚplainc             C   sD   t |ƒ}d }x2| j| |ƒD ]"\}}||k r|}|}|dkrP qW |S )Nr   )r   rÈ   )r;   rÉ   Z	best_prioZbodyZprior´   r   r   r   Úget_bodyî  s    
zMIMEPart.get_bodyrÃ   rÄ   Úalternativec       	      c   s  | j ƒ jdƒ\}}|dks"|dkr&d S | jƒ jƒ }|dkr®|dkr®| jdƒ}|r–d}g }x*|D ]"}|jdƒ|krvd}q^|j|ƒ q^W |r–|E d H  d S |jd	ƒ |E d H  d S g }xP|D ]H}|j ƒ jdƒ\}}||f| jkrú|j	ƒ  rú||krú|j|ƒ q¸|V  q¸W d S )
Nr˜   rÄ   rÐ   rÅ   rÆ   Fz
content-idTr   )
r�   rž   rh   rŠ   r_   r]   r,   ÚpopÚ_body_typesrÂ   )	r;   rÊ   rË   r“   rÆ   ry   Zattachmentsr´   Úseenr   r   r   Úiter_attachments  s6    






zMIMEPart.iter_attachmentsc             c   s   | j ƒ dkr| jƒ E d H  d S )NrÄ   )rŸ   rh   )r;   r   r   r   rÇ   4  s    zMIMEPart.iter_parts)Úcontent_managerc            O   s"   |d kr| j j}|j| f|ž|ŽS )N)r4   rÕ   Úget_content)r;   rÕ   ÚargsÚkwr   r   r   rÖ   <  s    zMIMEPart.get_contentc            O   s&   |d kr| j j}|j| f|ž|Ž d S )N)r4   rÕ   Úset_content)r;   rÕ   r×   rØ   r   r   r   rÙ   A  s    zMIMEPart.set_contentc       
      C   sÚ   | j ƒ dkr6| jƒ }||f }||kr6tdj||ƒƒ‚g }g }x>| jD ]4\}}|jƒ jdƒrl|j||fƒ qF|j||fƒ qFW |rªt| ƒ| j	d�}	||	_| j
|	_
|	g| _
ng | _
|| _d| | d< |d k	rÖ| jd|ƒ d S )NrÄ   zCannot convert {} to {}zcontent-)r4   z
multipart/zContent-Typer®   )rŸ   r    ru   rv   r5   r+   Ú
startswithr,   r\   r4   r7   rp   )
r;   rË   Zdisallowed_subtypesr®   Zexisting_subtypeZkeep_headersZpart_headersrs   r$   r´   r   r   r   Ú_make_multipartF  s,    


zMIMEPart._make_multipartc             C   s   | j dd|ƒ d S )NrÅ   rÐ   Úmixed)rÐ   rÜ   )rÛ   )r;   r®   r   r   r   Úmake_relateda  s    zMIMEPart.make_relatedc             C   s   | j dd|ƒ d S )NrÐ   rÜ   )rÜ   )rÛ   )r;   r®   r   r   r   Úmake_alternatived  s    zMIMEPart.make_alternativec             C   s   | j df |ƒ d S )NrÜ   )rÛ   )r;   r®   r   r   r   Ú
make_mixedg  s    zMIMEPart.make_mixed)Ú_dispc            O   sf   | j ƒ dks| jƒ |kr(t| d| ƒƒ  t| ƒ| jd�}|j||Ž |rXd|krX||d< | j|ƒ d S )NrÄ   Zmake_)r4   zcontent-dispositionzContent-Disposition)rŸ   r    Úgetattrr\   r4   rÙ   rR   )r;   Z_subtyperà   r×   rØ   r´   r   r   r   Ú_add_multipartj  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_relatedt  s    zMIMEPart.add_relatedc             O   s   | j d|ž|Ž d S )NrÐ   )rÐ   )râ   )r;   r×   rØ   r   r   r   Úadd_alternativew  s    zMIMEPart.add_alternativec             O   s   | j d|žddi|—Ž d S )NrÜ   rà   rÁ   )rÜ   )râ   )r;   r×   rØ   r   r   r   Úadd_attachmentz  s    zMIMEPart.add_attachmentc             C   s   g | _ d | _d S )N)r5   r7   )r;   r   r   r   Úclear}  s    zMIMEPart.clearc             C   s   dd„ | j D ƒ| _ d | _d S )Nc             S   s&   g | ]\}}|j ƒ jd ƒs||f‘qS )zcontent-)r+   rÚ   )r   Únr{   r   r   r   r€   ‚  s    z*MIMEPart.clear_content.<locals>.<listcomp>)r5   r7   )r;   r   r   r   Úclear_content�  s    zMIMEPart.clear_content)N)FNN©rÅ   rÍ   rÎ   )ré   )rÃ   rÎ   )rÃ   rÍ   )rÄ   rÅ   )rÄ   rÐ   )N)N)N)r¹   rº   r»   r<   r=   r>   rÂ   rÈ   rÏ   rÒ   rÔ   rÇ   rÖ   rÙ   rÛ   rÝ   rÞ   rß   râ   rã   rä   rå   ræ   rè   Ú__classcell__r   r   )r¿   r   r¼   ±  s0   

.



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 )NzMIME-Versionz1.0)r¾   rÙ   )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__Úrere   rb   Úior   r   Zemailr   r   Zemail._policybaser   r	   r
   r8   Zemail._encoded_wordsr   rj   r�   Úcompiler!   r   r%   r1   r3   r   r¼   r   r   r   r   r   Ú<module>   s4   


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