File: //usr/lib/python3/dist-packages/django/core/mail/__pycache__/message.cpython-310.pyc
o
3�a�B � @ s� d dl Z d dlmZmZmZmZ d dlm Z d dl
mZ d dlm
Z
mZ d dlmZ d dlmZ d dlmZ d d lmZ d d
lmZ d dlmZmZmZmZ d dlmZm Z d d
l!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z(m)Z) e�d�Z*de*_+e�d�Z,ej-e,_+dZ.dZ/G dd� de0�Z1h d�Z2dd� Z3dd� Z4G dd� d�Z5G dd� de5e�Z6G dd � d e5e�Z7G d!d"� d"e5e�Z8G d#d$� d$�Z9G d%d&� d&e9�Z:dS )'� N)�charset�encoders� generator�message_from_string)�HeaderParseError)�Header)�Address�parser)�Message)�MIMEBase)�MIMEMessage)�
MIMEMultipart)�MIMEText)�
formataddr�
formatdate�getaddresses�
make_msgid)�BytesIO�StringIO)�Path)�settings)�DNS_NAME)� force_str�punycode�utf-8zapplication/octet-streami� c @ s e Zd ZdS )�BadHeaderErrorN)�__name__�
__module__�__qualname__� r r �:/usr/lib/python3/dist-packages/django/core/mail/message.pyr # s r > �reply-to� resent-cc� resent-to�
resent-bcc�resent-from�
resent-sender�cc�to�bcc�from�senderc s� � pt j� t|�}d|v sd|v rtd|| f ��z|�d� W n. tyN | �� tv r=d�� fdd�t |f�D ��}nt
|� ��� }Y | |fS Y | |fS w | �� dkr[t
|��� }| |fS ) z6Forbid multi-line headers to prevent header injection.�
�
z;Header values can't contain newlines (got %r for header %r)�ascii�, c 3 s � | ]}t |� �V qd S �N)�sanitize_address)�.0�addr��encodingr r � <genexpr>A s � z,forbid_multi_line_headers.<locals>.<genexpr>�subject)r �DEFAULT_CHARSET�strr �encode�UnicodeEncodeError�lower�ADDRESS_HEADERS�joinr r )�name�valr5 r r4 r �forbid_multi_line_headers7 s"