2013-09-01 1 views
1

J'ai le code HTML @http://pastie.org/8289257 dans un fichier texte "gerrit.txt" qui va créer une table avec certains contenus, je convertis le fichier texte en un fichier .htm et l'ouvrir la sortie semble parfaitement bien, cela me dit le code HTML est très bien, mais quand je envoie un courriel (en utilisant Outlook) en utilisant le code ci-dessous, la table est parfois foiré. Je besoin d'idées sur ce que d'autres moyens puis-je envoyer un courriel J'ai essayé SMTP comme ci-dessous qui ne marche pas semblent fonctionner ...Emailing des données dans Outlook

from email.mime.text import MIMEText 
from smtplib import SMTP 

def email (body,subject): 
    msg = MIMEText("%s" % body) 
    msg['Content-Type'] = "text/html; charset=UTF8" 
    msg['Subject'] = subject 
    s = SMTP('localhost',25) 
    s.sendmail('[email protected]', ['[email protected]'],msg=msg.as_string()) 

def main(): 
    # open gerrit.txt and read the content into body 
    with open('gerrit.txt', 'r') as f: 
     body = f.read() 
    subject = "test email" 
    email(body,subject) 
    print "Done" 

if __name__ == '__main__': 
    main() 

Répondre

1

Votre code est tout à fait correct, sauf que vous devez passer à html Type MIMEText?:

msg = MIMEText("%s" % body, 'html') 

Je l'ai testé avec mon compte gmail, vu le code html dans le message sans régler le type html. Vous pouvez également utiliser le package mailer comme suggéré here.

+0

merci, une idée de la raison pour laquelle la table pourrait être foiré est-il un moyen d'échapper les caractères indésirables de chaque cellule? – user2341103

+0

hm, je l'ai envoyé avec 'html' passé - la table n'est pas foiré. Je ne vois qu'un seul problème html - la balise 'font' n'est pas fermée à la fin - bien que ce ne soit pas pertinent je pense. – alecxe

+0

avez-vous un moyen d'envoyer l'email dans Outlook? – user2341103