Я пытаюсь создать почтовый клиент в питонаЗагрузка вложений электронной почты с помощью питона Джанго
Я могу разобрать тело электронной почты с приложением и дисплеем в моем шаблоне 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)'. –