2016-07-08 6 views
5

Meine Eingabedatei ist eine CSV-Datei und durch einig Python-Skript ausgeführt wird, die von dem Python Tabellarische Modul besteht, habe ich eine Tabelle erstellt, die diese unten wie folgt aussehen: -senden Tabelle als E-Mail Körper (nicht Anlage) in Python

tabulate_output oder

| Attenuation | Avg Ping RTT in ms | TCP UP | 
|---------------:|---------------------:|---------:| 
|    60 |    2.31 | 106.143 | 
|    70 |    2.315 | 103.624 | 

Ich mag würde die diese Tabelle in der E-Mail Körper und nicht alsBefestigung mit python senden.

Ich habe eine sendMail-Funktion erstellt und erwarte, die Tabelle im mail_body zu senden. sendMail([to_addr], from_addr, mail_subject, mail_body, [file_name])

+0

Sie können den Empfänger bitten, E-Mails mit fester Schrift anzuzeigen und die Tabelle einfach in den E-Mail-Text einzufügen. –

+0

Warum senden Sie es nicht als HTML-Tabelle? – Arnial

+0

Sie müssen die HTML-Zeichenfolge erstellen und mit dem richtigen Content-Type-Header senden. [Ein Beispiel hier] (https://github.com/supersaiyanmode/gapi/blob/master/GApi4Term/commands/email.py#L8). – SuperSaiyan

Antwort

8

Dieser Code sendet die Nachricht im typischen Klartext plus HTML-Multipart/Alternative Format. Wenn Ihr Korrespondent dies in einem HTML-fähigen Mail-Reader liest, sieht er die HTML-Tabelle. Wenn er den Klartextleser liest, sieht er die reine Textversion.

In beiden Fällen werden die Daten im Nachrichtentext und nicht als Anhang angezeigt.

+0

@ Rob- Thnx eine Menge. Arbeitete für mich. Diese war der Schlüssel Zeile: message = MIMEMultipart ( "alternative", None, [Mime (Text), Mime (html, 'html')]) – Durvesh

+0

Hallo Rob, Ich habe dieses Stück Code mit Python verwendet 2.6 E-Mail scheint zu funktionieren, HTML-Tabelle zeigt organisierte Daten an, aber es gibt keine Grenzen, um es tatsächlich visuell zu machen. Könnten Sie mir bitte vorschlagen, was hier zu tun ist? –

+0

@VenuS - Ich bin mir nicht sicher, wie man eine Karte mit dem 'tabulate' Paket spezifiziert. Vielleicht können Sie den HTML-Code auf andere Weise erstellen und entweder das 'border'-Attribut angeben oder CSS verwenden. Unabhängig davon möchten Sie vielleicht eine neue Frage zu [SO] öffnen, um zu sehen, was andere zu sagen haben. –

Verwandte Themen