Bonjour j'ai un soucis avec un code en python qui me permet d'envoyé un mail d'alerte avec un raspberry. Ce code fonctionne mais je voudrais pouvoir une fois le mail envoyé supprimer ou vider un fichier texte ( SO-state.txt )Pouvez vous m'aider merci.
#!/usr/bin/env python
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders
import os
USERNAME = "adress@gmail.com"
PASSWORD = "123456"
NAME = "PiHome"
SOstate='/home/www/logs/SO-state.txt'
def sendMail(to, subject, text, files=[]):
assert type(to)==list
assert type(files)==list
msg = MIMEMultipart()
msg['From'] = USERNAME
msg['To'] = COMMASPACE.join(to)
msg['Date'] = formatdate(localtime=True)
msg['Subject'] = subject
msg.attach( MIMEText(text) )
for file in files:
part = MIMEBase('application', "octet-stream")
part.set_payload( open(file,"rb").read() )
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"'
% os.path.basename(file))
msg.attach(part)
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo_or_helo_if_needed()
server.starttls()
server.ehlo_or_helo_if_needed()
server.login(USERNAME,PASSWORD)
server.sendmail(USERNAME, to, msg.as_string())
server.quit()
sendMail( ["moi@free.fr"],
"PiHome",
"Sonnette",
["/home/www/capture/sonnette.jpg"] )
# Suppression de SOstate
deletefile(SOstate)
# python, indentation, etc
Posté par NeoX . Évalué à 3.
je n'y connais pas grand chose en python mais le code semble contenir un
deletefile(SOstate)
mais il est indenté.
pour moi il devrait etre tout collé à gauche, pour etre pris en compte comme le sendMail()
# Envoyez mail et supprimer un fichier après.
Posté par b.gwen . Évalué à 1.
Merci NeoX effectivement il y avait effectivement cette erreur l'email part bien mais j'ai encore une erreur .
Traceback (most recent call last):
File "gmail.py", line 49, in
deletefile(SOstate)
NameError: name 'deletefile' is not defined
[^] # Re: Envoyez mail et supprimer un fichier après.
Posté par nono14 (site web personnel) . Évalué à 3.
il manque une bibliothèque ? ( import, … )
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
[^] # Re: Envoyez mail et supprimer un fichier après.
Posté par aurel (site web personnel, Mastodon) . Évalué à 2.
deletefile n'existe pas. Regarde ici.
# Envoyez mail et supprimer un fichier après.
Posté par b.gwen . Évalué à 1.
Ouf j'ai trouver la solution j'ai simplement mis os.remove(SOstate) a la place de deletefile(SOstate).
Par contre encore un probleme comment faire pour que lorsque je recois un mail , avoir comme nom de l'expediteur PiHome a la place de adress@gmail.com ?
[^] # Re: Envoyez mail et supprimer un fichier après.
Posté par NeoX . Évalué à 1.
ben en changeant le FROM de l'email, non ?
dit autrement : en faisant rechercher/remplacer de address@gmail.com par PiHome
# Envoyez mail et supprimer un fichier après.
Posté par b.gwen . Évalué à 1.
j'ai essayé msg['From'] = NAME , mais le mail ne part pas !!
[^] # Re: Envoyez mail et supprimer un fichier après.
Posté par LeBouquetin (site web personnel, Mastodon) . Évalué à 3.
Ca, ça devrait marcher :
msg['From'] = 'Bob Dylan <bob@dylan.com>'
#tracim pour la collaboration d'équipe __ #galae pour la messagerie email __ dirigeant @ algoo
[^] # Re: Envoyez mail et supprimer un fichier après.
Posté par NeoX . Évalué à 2.
relire le code.
au debut du code tu as
puis plus bas
et toi qui cherches à changer adress@gmail.com par ton adresse à toi,
ton premier reflexe, c'est de changer la ligne
msg['From'] = USERNAME
???[^] # Re: Envoyez mail et supprimer un fichier après.
Posté par Sébastien Maccagnoni (site web personnel) . Évalué à 2.
Je crois bien que le champ From doit être une adresse e-mail valide.
# Envoyez mail et supprimer un fichier après.
Posté par b.gwen . Évalué à 0.
Merci LeBouquetin pour m'avoir donner la solution c’était bien
msg['From'] = 'Bob Dylan bob@dylan.com'
Me reste encore un autre probleme !! je veux automatiser ce fichier Python !! j’ouvre un nouveau poste.
Un grand Merci a tous !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.