0

我有以下一段代码,它使用 python 应用程序发送 SQL 命令的输出。

command = 'osql -E -S sqlconn -d database -Q "set nocount on;select t, COUNT(*) "Count" from risk group by t  " 
output = subprocess.check_output(command)

message = """From:XYZ <xyz@xyz.com>
To: To ABC <abc@abc.com>
Subject: Report for  run

"""
message = message + str(output)
try:
    smtpObj = smtplib.SMTP('smtpserver',25)
    smtpObj.sendmail(sender,receivers,message)

except SMTPException:
    print ('Error in sending email')

但是,问题是电子邮件包含诸如 \r\n 之类的消息,而不是正确格式化。

什么是正确格式化和发送电子邮件的更好方法。

收到的示例电子邮件:

b' t 计数 \r\n ----------- ----------- \r\n 2013-06- 04 00:00:00.000 6605 \r\n\r\n'

4

1 回答 1

0

您应该尝试使用 Python 的电子邮件模块。请参阅以下链接:

我认为您最需要的部分是 MIMEText。像这样的东西应该工作:

email_msg = MIMEText(body)
email_msg["Subject"] = subject
email_msg["From"] = from_addr
email_msg["To"] = to_addr

其中 body 是电子邮件的内容。然后你只需创建一个 smtplib.SMTP 对象并像这样调用它:

smtp_handle.sendmail(email_msg["From"], email_msg["To"], 
                     email_msg.as_string())
于 2013-06-05T20:55:18.380 回答