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

问题描述 投票:0回答:1

我正在尝试自动化报告,其中最后一部分是将报告邮寄给收件人。标准程序是在电子邮件主题行中显示报告的日期。底层系统是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消息发送给我的经理。 :)

谢谢!

python-2.7 subprocess
1个回答
0
投票

对后人来说,这就是我解决这个问题的方法。

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
© www.soinside.com 2019 - 2024. All rights reserved.