【问题标题】:Is it faster to initialize smtp once or initialize it every time you use it?smtp初始化一次还是每次使用都初始化快?
【发布时间】:2020-08-09 06:29:29
【问题描述】:

正如标题所说,我的问题是:初始化一次 smtp 并使用该实例发送大量电子邮件会更快,还是每次使用时都初始化它更好?还是完全没关系?我正在使用 python。

例如。这样做会更快吗

def email():

    import smtplib 

    sender_email_id = 'email here'
    sender_email_id_password = 'password here'
    message = "message here"
    
    s = smtplib.SMTP('smtp.gmail.com', 587) 
    s.starttls() 
    s.login("sender_email_id", "sender_email_id_password") 
    s.sendmail("sender_email_id", "receiver_email_id", message) 
    s.quit() 

for i in range(10):
    email()

还是这样做?

import smtplib 

sender_email_id = 'email here'
sender_email_id_password = 'password here'
s = smtplib.SMTP('smtp.gmail.com', 587) 
s.starttls() 
s.login("sender_email_id", "sender_email_id_password") 

def email(message):

    s.sendmail(sender_email_id, "to_someone@email.com", message) 
   

for i in range(10):
    email(message)

s.quit() 

【问题讨论】:

  • 至少您应该限制通过单个 SMTP 连接提交的邮件数量(例如 50 个)。许多 SMTP 服务器对其施加限制,以防止反垃圾邮件/反垃圾邮件。

标签: python python-3.x smtp gmail smtplib


【解决方案1】:

根据其他框架和惯例,我认为您应该在单独的配置文件中注册一次 SMTP 配置,然后重复使用该信息来执行多次邮件发送。

请注意,由于系统和 SMTP 服务器之间的打开和关闭 (I/O) 传输,每次发送电子邮件时打开和关闭 SMTP 连接会消耗更多资源和时间。

因此,初始化一次并重新使用对象应该更快更高效。

【讨论】:

    猜你喜欢
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 2011-03-14
    • 2020-08-08
    • 2021-12-19
    • 1970-01-01
    相关资源
    最近更新 更多