2016-03-08 5 views
0

У меня был скрипт на Python 2.7, который отправил бы электронное письмо. Следующий код прекрасно работал на нем:MIME Multipart отправляется как «noname» на Python 3

msg = MIMEMultipart(
    From = "Name <[email protected]>", 
    To = "Name <[email protected]>", 
    Date=formatdate(localtime=True), 
    Subject="SUBJECT") 
msg.attach(MIMEText("""HTML Stuff""", 'html')) 

with open(analysis_file, "rb") as fil: 
    msg.attach(MIMEApplication(
       fil.read(), 
       Content_Disposition='attachment; filename="%s"' % os.path.basename(analysis_file), 
       Name=os.path.basename(analysis_file) 
      )) 

msg['Subject'] = "SUBJECT" 
msg['From'] = "Name <[email protected]>" 
msg['To'] = "Name <[email protected]>" 

server.sendmail(FROMADDR, ["[email protected]"], msg.as_string()) 

я преобразовал сценарий Python 3.5, а все остальные части работы скрипта именно так, как ожидалось. Вышеизложенное, однако, не означает: вместо отправки моего письма с помощью HTML Stuff и вложения он отправляет пустое электронное письмо с файлом без продолжения без названия, который, как я полагаю, имеет материал, который я хотел отправить.

Я попытался удалить часть вложения и сохранить только материал HTML, но до сих пор нет сделки.

Почему это происходит, и как я могу это исправить?

(Причина я помещал Subject, С, и в два раза, что, когда я использовал его только в первый раз, он не будет работать по какой-то причине, и я никогда не снимал его оттуда после того, как он начал работать.)

ответ