Junior — Middle
67
Koju metodu višestrukog niti biste koristili za slanje masovnih e-poruka?
Компаније где су питане
Бергман Инфотех
Одговор од АИ
sobes.tech АИ
Для массовой отправки электронной почты в 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)
Такой подход позволяет параллельно отправлять письма, не блокируя основной поток, и эффективно использовать сетевые ресурсы. Для более масштабных задач можно рассмотреть асинхронные библиотеки или очереди задач.