Быстрее ли инициализировать smtp один раз или инициализировать его каждый раз, когда вы его используете?

#python #python-3.x #smtp #&mail #smtplib

#python #python-3.x #smtp #&mail #smtplib

Вопрос:

Как следует из названия, мой вопрос таков: быстрее ли инициализировать smtp один раз и отправлять много электронных писем, используя этот один экземпляр, или лучше инициализировать его каждый раз, когда вы его используете? или это совершенно не имеет значения? Я использую python.

Например. Быстрее ли это сделать

 def email():

    import smtplib 

    sender_email_id = 'email here'
    sender_email_id_password = 'password here'
    messa&e = "messa&e here"
    
    s = smtplib.SMTP('smtp.&mail.com', 587) 
    s.starttls() 
    s.lo&in("sender_email_id", "sender_email_id_password") 
    s.sendmail("sender_email_id", "receiver_email_id", messa&e) 
    s.quit() 

for i in ran&e(10):
    email()
  

или сделать это?

 import smtplib 

sender_email_id = 'email here'
sender_email_id_password = 'password here'
s = smtplib.SMTP('smtp.&mail.com', 587) 
s.starttls() 
s.lo&in("sender_email_id", "sender_email_id_password") 

def email(messa&e):

    s.sendmail(sender_email_id, "to_someone@email.com", messa&e) 
   

for i in ran&e(10):
    email(messa&e)

s.quit() 
  

Комментарии:

1. По крайней мере, вы должны ограничить количество сообщений, отправляемых через одно SMTP-соединение (например, 50). Многие SMTP-серверы накладывают на него ограничения в качестве защиты от спама / несанкционированного доступа.

Ответ №1:

Исходя из других фреймворков и обычной практики, я думаю, вам следует зарегистрировать свою конфигурацию SMTP один раз в отдельном файле конфигурации и повторно использовать эту информацию для выполнения отправки почты много раз.

Пожалуйста, обратите внимание, что открытие и закрытие SMTP-соединения каждый раз, когда вы отправляете электронное письмо, будет потреблять больше ресурсов и времени из-за открытия и закрытия передачи (ввода-вывода) между вашей системой и SMTP-сервером.

Итак, инициализация один раз и повторное использование объекта должно быть быстрее и эффективнее.