gpt4 book ai didi

python - 使用 Python 脚本发送附件

转载 作者:行者123 更新时间:2023-11-28 22:31:00 25 4
gpt4 key购买 nike

我使用以下 python 脚本通过 gmail 发送附件。但它可用于发送保存在保存 python 脚本的同一文件夹中的附件。我想发送一个保存在不同文件夹中的附件。我怎样才能通过修改这个脚本来做到这一点?谢谢。

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders
import os
import datetime


smtpUser = ' '
smtpPass = ' '

toAdd = ' '
fromAdd = smtpUser

today = datetime.date.today()

subject = 'Data File 01 %s' % today.strftime('%Y %b %d')
header = 'To :' + toAdd + '\n' + 'From : ' + fromAdd + '\n' + 'Subject : ' + subject + '\n'
body = 'This is a data file on %s' % today.strftime('%Y %b %d')

attach = 'Data on %s.csv' % today.strftime('%Y-%m-%d')

print header


def sendMail(to, subject, text, files=[]):
assert type(to)==list
assert type(files)==list

msg = MIMEMultipart()
msg['From'] = smtpUser
msg['To'] = COMMASPACE.join(to)
msg['Date'] = formatdate(localtime=True)
msg['Subject'] = subject

msg.attach( MIMEText(text) )

for file in files:
part = MIMEBase('application', "octet-stream")
part.set_payload( open(file,"rb").read() )
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"'
% os.path.basename(file))
msg.attach(part)

server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo_or_helo_if_needed()
server.starttls()
server.ehlo_or_helo_if_needed()
server.login(smtpUser,smtpPass)
server.sendmail(smtpUser, to, msg.as_string())

print 'Done'

server.quit()


sendMail( [toAdd], subject, body, [attach] )

最佳答案

sendMail 的第四个参数是一个文件名列表,所以你可以这样做:

sendMail(["name@domain.com"], 
"Subject",
"Dear sir..",
["subdir/file1.zip", "subdirfile.zip"] )

subdir/file1.zip 是相对于您调用脚本的路径。如果你想完全引用某个地方的文件,请使用 /path/to/my/file1.zip,例如/home/user/file1.zip

关于python - 使用 Python 脚本发送附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41821038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com