发送电子邮件给许多收件人

时间:2014-08-10 16:35:40

标签: python email

我需要向100位收件人发送电子邮件。当我向一个收件人发送邮件时,需要三秒钟。当我一次将它发送给三个收件人时,也需要三秒钟。

所以我使用多个收件人来更快地发送邮件。

def send(x, y, z):
    to = [x, y, z]
    subject="Multi Test"
    gmail_user = 'test@gmail.com'
    gmail_pwd = 'test'
    smtpserver = smtplib.SMTP("smtp.gmail.com", 587)
    smtpserver.ehlo()
    smtpserver.starttls()
    smtpserver.ehlo
    smtpserver.login(gmail_user, gmail_pwd)
    header = 'To:' + ", ".join(to) + '\n' + 'From: ' + gmail_user + '\n' + 'Subject: ' + subject + '\n'
    msg = header + '\n' + subject + '\n\n'
    smtpserver.sendmail(gmail_user, to, msg)
    smtpserver.close()

我要发送消息的电子邮件是

1@yahoo.com, 2@yahoo.com, 3@yahoo.com....., 100@yahoo.com

所以我希望脚本分成三个电子邮件然后发送消息

或者如果您知道另一种创建脚本以更快地发送消息的方法

1 个答案:

答案 0 :(得分:1)

将您的功能更改为

def send(to):
    // ..
    header = 'To:' + ", ".join(to)

然后将其称为

send(["1@yahoo.com", "2@yahoo.com", "3@yahoo.com", ..., "100@yahoo.com"])

但请考虑以下事项:

  • 如果您这样做,每个收件人都会知道您将电子邮件发送给所有其他99位收件人。
  • 您应该使用email.message来构建电子邮件。不要只是串起来。