在python中不附加多个文件并向服务器发送附件

2024-05-14 09:48:08 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我试着用mutt将所有的.csv文件附加到一个文件夹中,但它不起作用。因为某些原因,它只连接了其中一个,我认为我做得对。一个奇怪的消息是,mutt还发送了它实际附加到服务器上的一个.csv。我的意思是,我收到一封电子邮件到我的电子邮件,其中有一个附加的文件,而且在“收件人:”字段中有.csv文件@服务器一、 E“至:MyCsvFile.csv文件@服务器.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)

Tags: 文件csvpath服务器文件夹com电子邮件email
1条回答
网友
1楼 · 发布于 2024-05-14 09:48:08

您的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将把除第一个文件名以外的所有文件解释为目标地址。您的命令行应该类似于:

^{pr2}$

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

相关问题 更多 >

    热门问题