Sobes.tech
Back to questions
Junior — Middle
50

Каким методом многопоточности вы бы применили для отправки электронной почты массово?

Companies where asked
Бергман Инфотех

Answer from AI

sobes.tech AI

Для массовой отправки электронной почты в Python часто используют многопоточность с помощью модуля concurrent.futures.ThreadPoolExecutor. Это связано с тем, что отправка писем — операция ввода-вывода (I/O), и многопоточность позволяет эффективно использовать время ожидания сети.

Пример:

from concurrent.futures import ThreadPoolExecutor
import smtplib

# Функция отправки одного письма
def send_email(recipient):
    with smtplib.SMTP('smtp.example.com') as server:
        server.login('user', 'password')
        message = f"Subject: Привет\n\nЭто тестовое письмо для {recipient}"
        server.sendmail('from@example.com', recipient, message)

# Список получателей
recipients = ['user1@example.com', 'user2@example.com', 'user3@example.com']

with ThreadPoolExecutor(max_workers=5) as executor:
    executor.map(send_email, recipients)

Такой подход позволяет параллельно отправлять письма, не блокируя основной поток, и эффективно использовать сетевые ресурсы. Для более масштабных задач можно рассмотреть асинхронные библиотеки или очереди задач.