что вызвало изменение файла вложений при отправке электронной почты Python

Я пишу программу автоматической отправки электронной почты, используя python 2.7. В электронном письме есть файл Excel. Мне нужно получить имя файла в качестве заголовка.

Я использую два метода метод 1:

part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(att_files_path)) 

когда я получил электронное письмо, прикрепленный файл – это неправильный формат, который он изменил на файл bin, и он больше не является файлом excel.

метод 2:

 part.add_header('Content-Disposition', 'attachment; filename="aaa.xlsx"') 

нормально получить файл excel, но имя файла не может быть таким же, как имя реального файла, это может быть только что-то, что я добавляю в filename = ""

пожалуйста, дайте мне руку!

 #!/usr/bin/python # -*- coding: UTF-8 -*- import os import send_mail import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.base import MIMEBase from email.utils import formatdate from email import encoders mail_host = 'mail.xxxx.com' # 邮箱服务器mail_port = 25 # 邮箱服务器端口mail_user = 'suxl' # 登录邮箱服务器 用户名mail_pass = 'passsword' # 登录邮箱服务器 密码# 附件所在目录 路径RxEMAILHOME = u'F:\Workfiles\周报\\receivers.txt' ATTACHMENT_PATH = u'F:\Workfiles\周报\\forupdate\myname周报_20170821.xlsx' receiverlist = [] sender = '[email protected]' receivers = ['[email protected]'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱def getreceiverlist(filename): lif = open(filename) li = lif.readlines() lif.close() for x in range(len(li)): li[x] = li[x].strip(os.linesep) while '' in li: li.remove('') return li def send_mail(send_from, send_to, subject, text, att_files_path, server, port, username='', password=''): ret = True try: msg = MIMEMultipart() msg['From'] = send_from msg['To'] = str(send_to) msg['Date'] = formatdate(localtime=True) msg['Subject'] = subject msg.attach(MIMEText(text)) part = MIMEBase('application', "octet-stream") part.set_payload(open(att_files_path, "rb").read()) encoders.encode_base64(part) part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(att_files_path)) #part.add_header('Content-Disposition', 'attachment; filename="str"') msg.attach(part) server = smtplib.SMTP(server, port) server.login(username, password) server.sendmail(send_from, send_to, msg.as_string()) server.quit() except smtplib.SMTPException: # 如果 try 中的语句没有执行,则会执行下面的 ret=False ret = False return ret if os.path.exists(u'F:\Workfiles\周报\\receivers.txt'): receiverlist = getreceiverlist(u'F:\Workfiles\周报\\receivers.txt') if len(receiverlist) == 0: print("no recevicer!!") receiverlist = receivers else: print"receiverlist include : ", receiverlist else: print("no recevicer!!") receiverlist = receivers result = send_mail(sender, receiverlist, 'week-report', 'FYI', ATTACHMENT_PATH, mail_host, mail_port, mail_user, mail_pass) if result: print "邮件发送成功" else: print "Error: 无法发送邮件" 

  • Отфильтруйте данные mySQL при использовании fetchall () перед передачей строк в Excel через DataNitro
  • Написание документа excel с несколькими столбцами
  • Я ищу эквивалентную функцию для FDIST в python
  • Можно ли отключить openpyxl от автоматического разбора строк до даты и времени?
  • RunFrozenPython в xlwings жалуется на Workbook.caller () в Python
  • IOError: неверный режим ('rb') с использованием pandas.read_excel
  • Ошибка преобразования типа данных при попытке динамического добавления столбцов (полей) из excel в базе данных MS-Access с использованием Python
  • Как перекрестно ссылаться на два словаря в python. Таким образом, они могут печатать красивую отличную таблицу
  • Преобразование предполагаемого файла excel в csv в python
  • Сохраните файл .xls, а затем перезапишите существующий файл .xls в Python 2.7
  • Python: создание словаря с использованием данных из файла excel
  • Interesting Posts

    Написание массива ячеек строк в Excel из Matlab?

    Сбой службы SSIS Dynamical Excel из-за большего количества загружаемых данных

    «Переменная объекта или с переменной блока не задана»

    Открытие .xlsx, созданного в MsExcel 07 с apache poi, вызывает POIXMLException

    Ячейки (). Вставьте VS-ячейки.pastespecial?

    Excel / VBA: автоматическая настройка ширины столбца после вставки данных

    Тестирование данной серии с помощью NumXL

    Экспортировать отформатированные пули в электронное письмо из Excel TextBox

    Утверждение IF с RC в vba дает ошибку компиляции, почему?

    Формат даты в формате Excel VBA отображает разные результаты в разных компьютерах?

    Как создать .xltx (файл шаблона Microsoft Excel) с помощью PHPExcel?

    Применение формулы excel для всего столбца

    Как суммировать только те строки в excel, которые не отфильтрованы?

    Проблема. Присоединение таблицы SQL с инструкцией, содержащей функцию суммирования числа строк.

    Excel Macro Вставить данные из другой книги

    Давайте будем гением компьютера.