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)
Такой подход позволяет параллельно отправлять письма, не блокируя основной поток, и эффективно использовать сетевые ресурсы. Для более масштабных задач можно рассмотреть асинхронные библиотеки или очереди задач.