2016-10-28 8 views
0

Я успешно отправляю письма с вложением с помощью python 2. Но письма по-прежнему не имеют содержания тела.Как добавить текст тела к многопользовательской электронной почте в python 2?

Может кто-нибудь, пожалуйста, скажите мне, как я могу добавить текст тела вместе с вложением и предметом.

Мой текущий код:

import smtplib, os 
from email.MIMEMultipart import MIMEMultipart 
from email.MIMEBase import MIMEBase 
from email import Encoders 
from email.mime.text import MIMEText 


SUBJECT = "Email Data" 
emaillist=['[email protected]'] 
msg = MIMEMultipart('mixed') 
msg['Subject'] = 'SUBJECT ' 
msg['From'] = '[email protected]' 
msg['To'] = ', '.join(emaillist) 



part = MIMEBase('application', "octet-stream") 

part.set_payload(open('C:'+os.sep+'Desktop'+os.sep+'temp1.txt', `"rb").read())` 
Encoders.encode_base64(part) 

part.add_header('Content-Disposition', 'attachment; filename="output.txt"') 

msg.attach(part) 

server = smtplib.SMTP("smtp.gmail.com",587) 
server.ehlo() 
server.starttls() 
server.login("[email protected]", "password") 

server.sendmail(msg['From'], emaillist , msg.as_string()) 

ответ

1

От https://docs.python.org/2/library/email-examples.html:

text = "Here is the message body" 
html = """ 
<html> 
    <head></head> 
    <body> 
    <p>here is some html<br> 
     Here is some link <a href="https://www.python.org">link</a>. 
    </p> 
    </body> 
</html> 
""" 

part1 = MIMEText(text, 'plain') 
part2 = MIMEText(html, 'html') 
msg.attach(part1) 
msg.attach(part2) 

Вставьте это после msg.attach(part)

+0

Я попробовал и бросил эту ошибку: ** «Не удается присоединить дополнительные подразделы to non-multipart/* ') email.errors.MultipartConversionError: не удается подключить дополнительные подчасти к не-multipart/* ** – Abhijit

+0

Хорошо, я не понимаю вашу проблему полностью. Обновлен ответ. – user3036878

+0

Большое спасибо. Это сработало. – Abhijit