【问题标题】:Sending an email multiple times with smtplib in Python在 Python 中使用 smtplib 多次发送电子邮件
【发布时间】:2017-09-20 13:50:36
【问题描述】:

我编写了以下代码来发送一封电子邮件,该电子邮件只是将“测试”发送到指定的电子邮件地址。

 import smtplib
        sentFrom = "my email" 
        to = input("Enter email:  ")
        #numberEmails = raw_input ("Enter number of emails to send")
        messageText = "test"

        msg = "From: %s\n To: %s\n\n%s" % (sentFrom, to, messageText)

        username = str("my email")  
        password = str("my password")  

        try :
            server = smtplib.SMTP("smtp.gmail.com", 587)
            server.ehlo()
            server.starttls()
            server.login(username,password)
            server.sendmail(sentFrom, to, msg)
            server.quit()    
            print (" Email has sent")
        except :
        print("email NOT sent")

当我尝试发送多于 1 封电子邮件时,例如:

 5*server.sendmail(sentFrom, to, msg)

只发送一封电子邮件,然后我收到错误“未发送电子邮件”。在第一封电子邮件发送后,我没有收到“电子邮件已发送”,在第一封电子邮件之后只有“电子邮件未发送”打印。我该如何解决这个问题?我希望最终有一个 input() 以便我可以输入要发送的电子邮件数量,并且程序会发送输入到输入中的电子邮件数量。我把我认为这看起来像评论的方式放在顶部。我可以将 server.sendmail 命令乘以 numberEmails 命令吗?

这是我使用 Python 的第一天,所以请放轻松。 :)

【问题讨论】:

    标签: python email gmail smtplib


    【解决方案1】:

    你不能乘以这个。

    只能用数字进行乘法运算,server.sendmail(sentFrom, to, msg) 不会产生数字。

    您将不得不遍历所需的数量。

    例如,这会打印五次“hello world”:

    def test():
        print "hello world"
    
    numberEmails = 5
    
    for _ in range(numberEmails):
        test()
    

    当然,如果它不是整数,您必须将 numberEmails 解析为 int。

    最终你必须循环整个区块 5 次

    try :
            server = smtplib.SMTP("smtp.gmail.com", 587)
            server.ehlo()
            server.starttls()
            server.login(username,password)
            server.sendmail(sentFrom, to, msg)
            server.quit()    
            print (" Email has sent")
        except :
        print("email NOT sent")
    

    【讨论】:

    • 我最终使用了一个 while 循环,感谢您写得很好的回复。
    猜你喜欢
    • 2021-04-26
    • 1970-01-01
    • 2014-01-31
    • 2023-02-11
    • 2020-04-17
    • 2011-02-12
    • 2018-12-09
    • 2015-09-07
    • 2012-02-09
    相关资源
    最近更新 更多