
    3hu                     j    d dl mZmZmZ ddlmZ d dlZd dlZddddee	   fdZ
dded	edee	   fd
Zy)    )OptionalAnyDict   )EmailUndeliverableErrorN)timeoutcacher   c                     | ddl m} |} t        j                  j	                         }|xs t        j                  j                         |_        | |_        |S )Nr   DEFAULT_TIMEOUT) r   dnsresolverResolverLRUCacher	   lifetime)r   r	   r   r   s       Q/var/www/html/venv/lib/python3.12/site-packages/email_validator/deliverability.pycaching_resolverr   	   sG    %!||$$&H5cll335HNHO    domaindomain_i18nc           	      
   |/ddl m} ||}t        j                  j	                         }||_        i }	 	 |j                  | d      }t        |D cg c]2  }|j                  t        |j                        j                  d      f4 c}      }|D 	
cg c]  \  }	}
|
dk7  r|	|
f }}	}
t        |      dk(  rt        d| d      ||d	<   d |d
<   |S c c}w c c}
}	w # t        j                  j                  $ rf 	 |j                  | d      }|D cg c]  }dt        |      f nc c}w c}|d	<   d|d
<   n# t        j                  j                  $ rp 	 |j                  | d      }|D cg c]  }dt        |      f nc c}w c}|d	<   d|d
<   n0# t        j                  j                  $ r t        d| d      w xY wY nw xY w	 |j                  | d      }|D ]Y  }dj                  |j                         }|j#                  d      s0|j%                  dd      |d<   |dk(  sLt        d| d       n## t        j                  j                  $ r Y nw xY wY |S w xY w# t        j                  j&                  $ r t        d| d      t        j                  j(                  $ r ddicY S t        j*                  j,                  $ r ddicY S t        $ r  t.        $ r}t        dt        |      z         d }~ww xY w)Nr   r   MX.r   r   zThe domain name z does not accept email.mxmx_fallback_typeAAAAATXTr   s   v=spf1 asciireplace)errorsspfs   v=spf1 -allz does not send email.z does not exist.zunknown-deliverabilityno_nameserversr   zZThere was an error while checking if the domain name in the email address is deliverable: )r   r   r   r   get_default_resolverr   resolvesorted
preferencestrexchangerstriplenr   NoAnswerjoinstrings
startswithdecodeNXDOMAINNoNameservers	exceptionTimeout	Exception)r   r   r   dns_resolverr   deliverability_inforesponsermtasr(   r*   recvaluees                 r   validate_email_deliverabilityr?      sT    %?%G||88: '*,V
9	#++FD9H PXY1ALL#ajj/*@*@*EFYZD HL '/Cz82~  * 'D '4yA~-0@Md.eff(,%6: 23L e Z' ||$$ &	k'//<BJ,KQaQ[,K,K#D):=#$67<<(( k
k+33FFCHFN0O!SV0O0O'->D'(:;||,, k
 24D[MQh2ijjk <k*
'//># qCHHS[[1E''
35:\\'R[\5\+E2 N2"9<L[MYn:o"ppq <<(( @ I&	P <<   X &(8EU&VWW<<%% 
 %&6
 	
 ==   
 %i
 	
 #  
%hknopkqq
 	

s   C 7CC C'*C C I"=D9D('D98I"9GF-FFG-G  GI"GI"
AH;H;*H;:I";II"II"I% !I""I% %AL3 LL&K==L)NN)typingr   r   r   exceptions_typesr   dns.resolverr   dns.exceptionintr   r)   r?    r   r   <module>rF      sN    & & 5   26T # j# jC j(SV- jr   