2015-11-06 8 views
0

Моя цель - сохранить электронную почту, которую посылает мой скрипт, используя модуль smtplib.Python - распечатать/сохранить электронную почту перед отправкой с использованием smtplib

Вот как я посылаю электронную почту:

#Creating a multipart body 
msg = MIMEMultipart() 
#Attaching files to the email 
for file in tc['attachments']: 
    try: 
     part = email.mime.base.MIMEBase('application', "octet-stream") 
     part.set_payload(open(file, "rb").read()) 
     email.encoders.encode_base64(part) 
     part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file)) 
     msg.attach(part) 
    except Exception as err: 
     print "Exception when attaching file %s to the email: \n %s" % (file, err) 
     print traceback.print_exc() 

#Connecting to the SMTP server 
smtp = smtplib.SMTP("1.2.3.4") 

#Sending the email 
try: 
    status = smtp.sendmail(msg['From'], send_to, msg.as_string()) 
    print status 
    smtp.close() 
except Exception, e: 
    print "Unable to send the email. Exception seen: %s" % e 

Теперь, если я сохранить msg.as_string() переменного, она сохраняет только тело письма, но я хочу, чтобы вся электронную почту, как он отправляется.

Я просмотрел документацию модуля smtplib, но не смог найти ручку для печати заголовков сообщения электронной почты.

Есть ли какой-либо взлом (например, использование другого модуля для отслеживания трафика и т. Д.), Который я могу использовать для сохранения электронной почты так, как я отправил его из сценария?

ответ

0

Вы можете получить версию строки сообщения электронной почты целиком, включая заголовки с использованием str():

save_msg = str(msg) 
+0

Круто .. вот что я хотел. Спасибо за помощь. – gixxer