我正在尝试自动化报告,报告的最后部分是将报告邮寄给收件人。标准程序是在电子邮件主题行中包含报告日期。底层系统是一台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.不想再发送另一封无法发送的消息给我的经理。 :)
谢谢!
答案 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