我有以下代码,它使用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'
答案 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())