我有一个正在运行的程序。当程序得到结果时,它会使用以下函数向我发送电子邮件:
def send_email(message):
import smtplib
gmail_user = OMITTED
gmail_pwd = OMITTED
FROM = OMITTED
TO = OMITTED #must be a list
try:
#server = smtplib.SMTP(SERVER)
server = smtplib.SMTP("smtp.gmail.com", 587) #or port 465 doesn't seem to work!
server.ehlo()
server.starttls()
server.login(gmail_user, gmail_pwd)
server.sendmail(FROM, TO, message)
#server.quit()
server.close()
print 'successfully sent the mail'
except:
print "failed to send mail"
免责声明:我在Stack Overflow的某个地方找到了这段代码,它不是我的。由于它们似乎没有特别的意义,因此我删掉了其中的一些部分。
有时我的代码会得到很多结果,我在不到20秒的时间内就会收到150多个不同的电子邮件。
我如何修改上面的函数,以便程序将所有结果发送到同一个线程中?
如果您不理解我的想法,我希望我的收件箱看起来像这样:
sender@gmail.com(150) ...
... (other emails from other senders)
更好的替代方案:
sender@gmail.com ...
sender@gmail.com ...
sender@gmail.com ...
sender@gmail.com ...
sender@gmail.com ...
...
sender@gmail.com ...
... (other emails from other senders)
编辑
为了解决这个问题,我所需要做的就是重新插入我之前删除的代码部分。完整的函数如下:
def send_email(TEXT):
import smtplib
gmail_user = OMITTED
gmail_pwd = OMITTED
FROM = OMITTED
TO = OMITTED #must be a list
SUBJECT = "Big brother candidate"
#TEXT = "Testing sending mail using gmail servers"
# Prepare actual message
message = """\From: %s\nTo: %s\nSubject: %s\n\n%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
try:
#server = smtplib.SMTP(SERVER)
server = smtplib.SMTP("smtp.gmail.com", 587) #or port 465 doesn't seem to work!
server.ehlo()
server.starttls()
server.login(gmail_user, gmail_pwd)
server.sendmail(FROM, TO, message)
#server.quit()
server.close()
print 'successfully sent the mail'
except:
print "failed to send mail"
message = """\From: %s\nTo: %s\nSubject: %s\n\n%s """ % (FROM, ", ".join(TO), SUBJECT, TEXT)
这是原始代码。我认为它是无用的。感谢您的帮助。我已经使用相同的主题进行了一些测试,它可以工作;-) - user1790813