小编Joh*_*hnS的帖子

Python电子邮件MIME附件文件名

我在将CSV文件附加到电子邮件时遇到问题。我可以使用smtplib很好地发送电子邮件,也可以将CSV文件附加到电子邮件中。但是我无法设置附件的名称,因此无法将其设置为.csv。另外,我不知道如何在电子邮件正文中添加文本消息。

此代码会导致称为的附件AfileName.dat,而不是所需的附件testname.csv,或者更好attach.csv

#!/usr/bin/env python

import smtplib
from email.mime.multipart import MIMEMultipart
from email import Encoders
from email.MIMEBase import MIMEBase

def main():
    print"Test run started"
    sendattach("Test Email","attach.csv", "testname.csv")
    print "Test run finished"

def sendattach(Subject,AttachFile, AFileName):
    msg = MIMEMultipart()
    msg['Subject'] = Subject 
    msg['From'] = "from@email.com"
    msg['To'] =  "to@email.com"
    #msg['Text'] = "Here is the latest data"

    part = MIMEBase('application', "octet-stream")
    part.set_payload(open(AttachFile, "rb").read())
    Encoders.encode_base64(part)

    part.add_header('Content-Disposition', 'attachment; filename=AFileName')

    msg.attach(part)

    server = smtplib.SMTP("smtp.com",XXX)
    server.login("from@email.com","password")
    server.sendmail("email@email.com", "anotheremail@email.com", msg.as_string())

if __name__=="__main__":
main()
Run Code Online (Sandbox Code Playgroud)

csv mime email-attachments python-2.7

4
推荐指数
1
解决办法
7300
查看次数

标签 统计

csv ×1

email-attachments ×1

mime ×1

python-2.7 ×1