0

所以,我正在尝试使用 mutt 将所有 .csv 文件附加到一个文件夹中,但它不合作。出于某种原因,它只附加了其中一个,我认为我做对了。奇怪的是,mutt 还会将它实际附加到服务器的 .csv 文件发送出去。我的意思是,我收到一封电子邮件,其中附有一个文件,并且在“收件人:”字段中它有 .csv file@server IE “收件人:MyCsvFile.csv@server.serv.net; myemail@domain.com”。所以,它发送到我希望它发送到的电子邮件,在服务器之上......为什么它发送到服务器并且只附加一个.csv?

def sendEmail():
    email = 'myemail@domain.com'
    Extracts = "/path/path/path/path/path/*.csv"
    blankEmailContentFile = '/path/path/path/path/blank'

    fh = open(blankEmailContentFile, 'w+')
    fh.close()

    linuxCMD = 'mutt -s "Email Subject" -a %s "%s" < %s' % (Extracts, email, blankEmailContentFile )
    os.system(linuxCMD)
4

1 回答 1

0

您的mutt命令行不正确。根据mutt(1)手册页:

   -a file [...]
          Attach  a  file  to  your message using MIME.  When attaching single or multiple files,
          separating filenames and recipient addresses with  "--"  is  mandatory,  e.g.  mutt  -a
          image.jpg  --  addr1  or  mutt  -a img.jpg *.png -- addr1 addr2.  The -a option must be
          placed at the end of command line options.

如果不--将文件名与地址分开,则将mutt除第一个文件名之外的所有内容都解释为目标地址。您的命令行应类似于:

linuxCMD = 'mutt -s "Email Subhect" -a %s -- "%s" < %s' % (Extracts, email, blankEmailContentFile )

虽然上述方法可行,但这将是一个很好的机会来研究subprocess模块并弄清楚如何构建一个不依赖于 shell 通配符扩展的命令行以便正确运行。还有一个smtplibPython 模块,它允许您在不依赖外部程序的情况下发送电子邮件。

于 2014-02-20T14:06:51.223 回答