Python也在发送电子邮件

2024-04-24 11:52:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的脚本,我用它自己发送10条消息<;->;我自己。不过,我注意到Python确实需要一段时间才能做到这一点。去年我需要一个系统来发送大约200封带有附件和文本的电子邮件,我用msmtp+bash实现了它。据我所知,它要快得多。

将while循环移入(围绕smtp_serv.sendmail(sender,recepient,msg)函数)会产生类似的结果。

我做错什么了吗?当然不能比bash+msmtp慢(我只发送了一条“hi”消息,没有附件)。

#! /usr/bin/python3.1

def sendmail(recepient,  msg):

    import smtplib

    # Parameters
    sender = 'login@gmail.com'
    password = 'password'
    smtpStr = 'smtp.gmail.com'
    smtpPort = 587
    # /Parameters

    smtp_serv = smtplib.SMTP(smtpStr, smtpPort)
    smtp_serv.ehlo_or_helo_if_needed()
    smtp_serv.starttls()
    smtp_serv.ehlo()

    recepientExists = smtp_serv.verify(recepient)
    if recepientExists[0] == 250:
        smtp_serv.login(sender, password)
        try:
            smtp_serv.sendmail(sender, recepient, msg)
        except smtplib.SMTPException:
            print(recepientExists[1])
    else:
        print('Error',   recepientExists[0], ':',  recepientExists[1])

    smtp_serv.quit()

for in in range(10):
    sendmail('receiver@gmail.com',  'hi')

Tags: combash消息附件msgpasswordsmtpgmail