在Python中将循环输出发送到电子邮件

时间:2014-09-01 10:02:56

标签: python email

仍然是Python世界的新手,所以第一个问题来自我,希望有人可以提供帮助。 所以这里有一些简单的代码,列出路径中的目录,并希望将输出发送到电子邮件。电子邮件设置工作,因为它将邮件" TEXT"对我来说,但是我一直在努力尝试从打印功能中捕获标准输出。

由于

for root, dirs, files in os.walk(path):
    for curDir in dirs:
        fulldir = os.path.join(root, curDir)
        print '\nThis dir : %s' % (fulldir)

### Email setup

SERVER = "myserver"
PORT = "25"

FROM = "me@me.com"
TO = ["me@me.com"]

SUBJECT = "Some dirs"

TEXT = "The print loop from above please"

# Prepare actual message

message = """\
From: %s
To: %s
Subject: %s

%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)


### Send the message
server = smtplib.SMTP(SERVER, PORT)
server.sendmail(FROM, TO, message)
server.quit()

1 个答案:

答案 0 :(得分:0)

此代码将使用换行符连接您的目录列表,确保每行都列出一个目录。

import os

path = "C:\\tmp" #my test path

# See http://stackoverflow.com/q/973473/474189 for other alternatives
dirs = [x[0] for x in os.walk(path) ]

# Print if needed
for d in dirs:
    print "\nThis dir : %s" % (d)        

email_text = "\n".join(dirs)