o
    Ž¨ÊhÚ  ã                   @   sX   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
 G dd	„ d	eƒZdS )
é    N)Ú	b64encode)ÚEmailMultiAlternatives)ÚDEFAULT_ATTACHMENT_MIME_TYPE)Úsettingsé   )ÚUnsupportedContentc                       s    e Zd ZdZ‡ fdd„Z‡  ZS )ÚSparkPostMessagea  
    Takes a Django EmailMessage and formats it for use with the SparkPost API.

    The dictionary returned would be formatted like this:

    {
        'recipients': ['recipient@example.com'],
        'from_email': 'from@example.com',
        'text': 'Hello world',
        'html': '<p>Hello world</p>',
        'subject': 'Hello from the SparkPost Django email backend'
    }
    c              	      s0  t ƒ }|jr|j|d< |jr|j|d< |jr|j|d< t|dƒr&|j|d< n|jdkr1|j|d< n|j|d< |jr>|j|d< |j	rF|j	|d< t|d	ƒrV|j
rVd
 |j
¡|d	< t|tƒru|jD ]}|d dkrm|d |d< q^td|d  ƒ‚|jrÍg |d< tj}|jD ]J}|\}}}|d u ršt |¡\}}	|d u ršt}zt|tƒr¥| |¡}W n ty¹   t|tƒr·| |¡}Y nw t|ƒ}
|d  ||
 d¡|dœ¡ q‚t|dƒr×|j|d< t|dƒrá|j|d< |j�r|j|d< d|jv �rdd l }| !|jd ¡}|�r| "di ¡ "dd¡�rd|d< t#t$| ƒ %|¡ d S )NÚ
recipientsÚ
from_emailÚsubjectÚtemplateÚhtmlÚtextÚccÚbccÚreply_toú,r   z	text/htmlr   z Content type %s is not supportedÚattachmentsÚascii)ÚnameÚdataÚtypeÚsubstitution_dataÚcampaignÚcustom_headersz
X-MSYS-APIÚoptionsÚtransactionalFT)&ÚdictÚtor
   r   Úhasattrr   Úcontent_subtypeÚbodyr   r   r   ÚjoinÚ
isinstancer   Úalternativesr   r   r   ÚDEFAULT_CHARSETÚ	mimetypesÚ
guess_typer   ÚunicodeÚencodeÚ	NameErrorÚstrr   ÚappendÚdecoder   r   Úextra_headersÚjsonÚloadsÚgetÚsuperr   Ú__init__)ÚselfÚmessageÚ	formattedÚalternativeÚstr_encodingÚ
attachmentÚfilenameÚcontentÚmimetypeÚ_Úbase64_encoded_contentr/   Úmsys_api©Ú	__class__© úJ/var/www/html/env/lib/python3.10/site-packages/sparkpost/django/message.pyr3      sz   










ÿ



€

€þ
ý




zSparkPostMessage.__init__)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r3   Ú__classcell__rB   rB   r@   rC   r      s    r   )r&   Úbase64r   Údjango.core.mailr   Údjango.core.mail.messager   Údjango.confr   Ú
exceptionsr   r   r   rB   rB   rB   rC   Ú<module>   s    