2017-05-21 3 views
0

Ich sende E-Mail-Anhang über Python-Funktion. Alles in Ordnung außer Ding, mein Anhang ist getrimmt. Es ist rund 200 Saiten getrimmt und ich kann nicht verstehen, wo sie los sind. Ich habe meine Funktion im Debugger überprüft und festgestellt, dass vor encoders.encode_base64(part)part.set_payload die gleiche Größe wie die Dateigröße auf HDD ist, aber im Ergebnis bekomme ich getrimmten Anhang.Getrimmte Anlage in E-Mail

Send Mail-Funktion unter:

def mail_sender(recipients, sender, z_name, z_count=0): 
    for recipient in recipients: 
     msg = MIMEMultipart() 
     sender = '%s' % sender 
     subject = "report on %s" % (time.strftime("%d/%m/%Y")) 
     body = "Good morning, enjoy todays report.\n\nTotal: %d" % z_count 

     msg['From'] = sender 
     msg['To'] = recipient 
     msg['Date'] = formatdate(localtime=True) 
     msg['Subject'] = subject 
     msg.attach(MIMEText(body, 'plain')) 

     part = MIMEBase('application', "base64") 
     part.set_payload(open("result.txt", "rb").read()) 
     encoders.encode_base64(part) 
     part.add_header('Content-Disposition', 'attachment; filename="result.txt"') 
     msg.attach(part) 

     s = smtplib.SMTP('localhost') 
     s.sendmail(sender, recipient, msg.as_string()) 

Antwort

0

fand ich, warum getrimmt wurde attach. Ich vergesse, den Dateihandler zu schließen, bevor ich meine Sende-Mail-Funktion ausführe.