
     h$                         d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZ ej2                  d    dkD  Zd Zd Z	 	 	 	 ddZd Zd Zy)    N)MIMEBase)MIMEMultipart)MIMEText)
formatdate)add_dkim_sig_to_message)add_message_id)add_recipients_headers)add_subject)rawinline   c                 x    t        | t        j                  t        j                  f      r| j                         S y )N)
isinstancedatetimedate	isoformat)os    O/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/yagmail/message.pydt_converterr      s,    !hmmX%6%678{{} 9    c                 2   d}t        | t        t        t        t        f      r(dt        j                  | dt              z   dz   } d}|| fS d| j                  j                  v r	 | j                         } d}|| fS # t        $ r | j                         } Y !w xY w)NFz<pre>   )indentdefaultz</pre>T	DataFrame)r   dictlisttuplesetjsondumpsr   	__class____name__renderAttributeErrorto_html)contentis_marked_ups     r   serialize_objectr)      s    L'D$s34DJJwq,OORZZ    
))22	2	(nn&G     	(oo'G	(s   $A: :BBc           	         t        |t        t        f      s||g}t        |t        t        f      s||g}|q|D ]c  }t        |t        j                        rt
        j                  j                  |      r>d}t        |j                  |t        |                   ||n||z   }||D cg c]  }t        |       }}t        ||      \  }}||D cg c]  }|d   	 }}t               }||j                         D ]
  \  }}|||<    |d|vrt               |d<   t        d      }t        d      }|j!                  d       |j!                  |       t#        ||       t%        | |||       t'        ||	|
       d	}g }|rd
|_        |t+        ||      D ]  \  }}|d   dk(  rHt,        j.                  j1                  |d          t        |t2              r:t5        |      dk(  r,|D ]$  }t7        t9        t;        |                  }||   }& }nEt
        j                  j=                  t7        |            }t7        t9        t;        |                  }t        |      t>        k(  ro|dj                        z  }|d   jA                  ddj                  |             |jC                  dj                  |             |j!                  |d          B|j!                  |d          X|d   dk(  r8t,        j.                  j1                  |d          |j!                  |d          |d   dvr|j!                  |d          |d   s|jE                  dd      }	 |dj                  |      z  }tF        r|rddl$}|jK                  |      }|jC                  |        tO        |d|      |jQ                         d<   |j!                  tO        djS                  |      |             |j!                  |       |tU        ||       |S c c}w c c}w # tL        $ r |dj                  |      z  }Y w xY w)zPrepare a MIME messageNzX{a} must be a valid filepath or file handle (instance of io.IOBase). {a} is of type {tp})atp   Datealternativerelatedz-- HTML goes here -- zAThis message is best displayed using a MIME capable email reader.	main_typeimagemime_objectz <img src="cid:{0}" title="{1}"/>z
Content-IDz<{0}>z-- img {0} should be here -- encodingbase64sub_type)htmlplainr(   
z<br>z<div>{0}</div>r   r8   _charset)+r   r   r   ioIOBaseospathisfile	TypeErrorformattyper)   prepare_contentsr   itemsr   attachr
   r	   r   preamblezipemailencodersencode_base64r   lenstrabshashbasenamer   
add_headerappendreplacePY3	premailer	transformUnicodeEncodeErrorr   get_payloadjoinr   )user	useralias	addressessubjectcontentsattachmentsheadersr5   prettify_html
message_idgroup_messagesdkimr+   msgxhas_included_imagescontent_objectskvmsg_alternativemsg_relatedhtmlstraltstrcontent_objectcontent_stringkey
hashed_refaliasrV   s                                r   prepare_messageru   )   s   " hu. zHkD%=1"&-KAa+BGGNN14Ep

Q47
 ;<<  #+"2;;8N19:A$Q':+;Hh+O("*+(QAaD(+
/CMMODAqCF $&/ lF#M2O	*K-.JJW4C;3
N3GFZ.1/8.L*NNk*g5,,^M-JKnd3N8Kq8P-%(T#Y%8
 .s 3  . &)NGG,,S-@AE!$Se%5!6J
 '61AHHUZ[[G"=1<<\7>>ZdKefMM"A"H"H"OP&&~m'DE JJ~m<= "*-9NN001NOJJ~m<=#J/7HHJJ~m<=).9)7)?)?f)ML#3#:#:>#JJ=,&/&9&9'&BG MM.1[ /M^ $,GVh#OKa 8DIIf$5IJ;'T*Jc ; ,D . L#4#;#;N#KKLs   0PP +1P%%QQc                     g }d}| pd}| D ]i  \  }}t        |t        j                        r"t        |d      sdj	                  |      |_        t        |||      }|d   dk(  rd}|j                  |       k ||fS )NFr-   namezattachment_{}r2   r3   T)r   r=   r>   hasattrrC   rw   get_mime_objectrS   )r_   r5   mime_objectsrh   unnamed_attachment_idr(   r'   rp   s           r   rE   rE      s    L !%-!L''299-w/#2#9#9:O#PGL,\7HMNk*g5&*#/ &. ,,r   c                 |   d d d d | d}	 t         j                  j                  t        |            }t        |      t        k(  }	 t         j                  j                  |      }|s-|r+t        |d      5 }d|d<   |j                         }d d d        nt        |t        j                         r?|j                         }t         j                  j                  |j"                        }d|d<   n:d|d<   |rt%        ||      |d	<   nt%        |d
|      |d	<   d
|d<   |d   d|d<   |S |d   4t'        j(                  |      \  }	}
|	|	j+                  d      \  |d<   |d<   |d   |d   |d   dk7  r
d|d<   d|d<   t-        |d   |d   |d|f      }|j/                         |d   dk(  r|j1                  dd|       ||d	<   |S # t        $ r# t         j                  j                  |      }Y w xY w# t        $ r# d}t        t        t        |                  }Y t        $ r d}Y w xY w# 1 sw Y   xY w)N)r4   r5   r2   r7   r(   Frbr6   r5   textr2   r;   r4   r8   r7   r9   /applicationzoctet-streamr1   )rw   zContent-Disposition
attachment)filename)r?   r@   rQ   rN   rX   rD   r   rA   
ValueErrorrO   rP   rB   openreadr   r=   r>   rw   r   	mimetypes
guess_typesplitr   set_payloadrR   )r(   rq   r5   rp   content_nameis_rawis_filefr'   content_type_r4   s               r   ry   ry      sl   $N8ww''N(;< .!S(F''..0 g.$'1)1N:&ffhG (' 
NBII	. %%'ww''(;(;<%-z" '-{#,4^h,WN=),4^VV^,_N=))/N:&*%-)0N:&k"*#..|<a#FRFXFXY\F]CN;'
)Ck"*nZ.H.T*%1*7N;')7N:&>+6z8RZbdfhtYuvKG$k"m34l\Z$/N=!k  8ww''78  63tN345  ('s5   (G G5 4H1(G21G25(H. 
H.-H.1H;)TNTN) r   email.encodersrJ   r=   r    r   r?   sysemail.mime.baser   email.mime.multipartr   email.mime.textr   email.utilsr   yagmail.dkimr   yagmail.headersr   r	   r
   yagmail.utilsr   r   version_inforU   r   r)   ru   rE   ry    r   r   <module>r      ss      	   	 
 $ . $ " 0 * 2 ' %	qA
!. 	qh-$?r   