我正在尝试自动化报告,其中最后一部分是将报告邮寄给收件人。标准程序是在电子邮件主题行中显示报告的日期。底层系统是CentOS机器。请参阅下面的代码:
import subprocess
emailto = "[email protected]"
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.并且不希望将另一个Undeliverable消息发送给我的经理。 :)
谢谢!
对后人来说,这就是我解决这个问题的方法。
import subprocess
import datetime
filenm = "report.csv"
emailto = "[email protected]"
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