Bonjour,
J'ai un bogue avec mon module Python sous Windows, j'ouvre un fichier text avec des accents, je mets le string dans une variable et j'ouvre le client email par défaut de mes utilisateurs avec le corps du message.
Sur mon poste tout fonctionne bien mais pas sous le poste des mes clients (Windows) également, voici mon code:
Je récupère mon fichier text:
Puis j'ouvre l'email du client avec le body text et les fichiers attachés:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 # Get e-mail body file email_body = open('config/email_body.txt').read().encode('cp1252')
Moi tout fonctionne bien mais les autres postes voici l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 # Open default e-mail client, prepare e-mail Popen( obj_config['mail_section']['email_client_exe'].encode('cp1252') + " -compose " \ "to='" + obj_config['mail_section']['email_to'] + "'," \ "cc='" + obj_config['mail_section']['email_cc'] + "'," \ "subject='" + obj_config['mail_section']['email_subject'] + "'," \ "attachment='" + ','.join(files_list) + "'," \ "body='" + email_body + "'", stdout=PIPE, stderr=PIPE
Note: je redirige la console dans sys.stdout et j'ai aussi tous mes "print" dans un fichier de log en plus...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ERROR: Traceback (most recent call last): File "C:\make_thon_rouge_report\make_thon_rouge_report.py", line 151, in send_com_department_report email_body = open('config/email_body.txt').read().encode('cp1252') File "C:\Python25\lib\encodings\cp1252.py", line 12, in encode return codecs.charmap_encode(input,errors,encoding_table) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 40: ordinal not in range(128)
Une idée sur le standard pour faire ce que je souhaite?
Merci,
Partager