Python 2.7子流程模块:发送带有主题行中日期的电子邮件

时间:2018-09-17 17:49:27

标签: python-2.7 subprocess

我正在尝试自动化报告,报告的最后部分是将报告邮寄给收件人。标准程序是在电子邮件主题行中包含报告日期。底层系统是一台CentOS计算机。请参阅下面的代码:

import subprocess

emailto = "email@address.com"
filenm = "report-parked-domains.csv"

subprocess.Popen("/bin/mailx -a %s -s 'cPanel Parked Domains Report for `date +%%Y-%%m`' %s < emailbody.txt" % (filenm, emailto), shell = True)

发送电子邮件后,收件人将收到一封格式如下的电子邮件:

cPanel Parked Domains Report for `date +%Y-%m`

我不确定如何从作为电子邮件主题的字符串中转义Linux年和月变量。

任何有关如何解决此问题的帮助?我曾考虑过使用“ datetime”模块,但是1.不知道如何在我正在使用的子流程命令中实现该功能,以及2.不想再发送另一封无法发送的消息给我的经理。 :)

谢谢!

1 个答案:

答案 0 :(得分:0)

为了后代,这是我解决这个问题的方法。

import subprocess
import datetime

filenm = "report.csv"
emailto = "email@address.com"
todaysdate = datetime.date.today()

subprocess.Popen("/bin/mailx -a %s -s 'cPanel Parked Domains Report for %s' %s < emailbody.txt" % (filenm, todaysdate, emailto), shell = True)

这将导致电子邮件主题行为:

cPanel Parked Domains Report for 2018-09-17