我试图发展蟒蛇下载邮件附件的Django
邮件客户端,我可以用我的Django的模板安装和显示解析电子邮件正文。
现在我需要下载附件时,我点击附件名称。
我能找到的所有方法都是使用python将文件下载到特定的文件夹。 但我怎么可能将其下载到系统默认的下载文件夹,当我点击文件名上我的浏览器
下面是代码示例我试图
def download_attachment(request):
if request.method == 'POST':
filename=request.POST.get('filename','')
mid=request.POST.get('mid','')
mailserver = IMAP_connect("mail.example.com",username, password)
if mailserver:
mailserver.select('INBOX')
result, data = mailserver.uid('fetch', mid, "(RFC822)")
if result == 'OK':
mail = email.message_from_string(data[0][1])
for part in mail.walk():
if part.get_content_maintype() == 'multipart':
continue
if part.get('Content-Disposition') is None:
continue
fileName = part.get_filename()
if filename != fileName:
continue
detach_dir = '.'
if 'attachments' not in os.listdir(detach_dir):
os.mkdir('attachments')
if bool(fileName):
filePath = os.path.join(detach_dir, 'attachments', fileName)
if not os.path.isfile(filePath) :
print fileName
fp = open(filePath, 'wb')
fp.write(part.get_payload(decode=True))
fp.close()
return HttpResponse()
你的意思是改变我最后如果循环内容与此??那为什么我们将只有内容配置文件内容?我不想在我的服务器中创建文件的副本,并将其作为响应发送并发送。 – JithPS
是的,您只需要在响应对象中包含要发送的数据。你可以使用'response.write(data)'或者只是在创建响应时传递数据,就像'response = HttpResponse(data)'一样。 –