Python - 电子邮件中的SQL输出

时间:2013-06-05 20:35:58

标签: python sql-server email

我有以下代码,它使用python applicatino发送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等消息而不是正确格式化。

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

收到的电子邮件示例:

  

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

1 个答案:

答案 0 :(得分:0)

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

我认为你最需要的是MIMEText。这样的事情应该有效:

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

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

smtp_handle.sendmail(email_msg["From"], email_msg["To"], 
                     email_msg.as_string())