Sujet d'un mail Python
Résolu/Fermé
biche_35
Messages postés
34
Date d'inscription
mercredi 4 décembre 2013
Statut
Membre
Dernière intervention
1 août 2017
-
13 mars 2014 à 18:42
biche_35 Messages postés 34 Date d'inscription mercredi 4 décembre 2013 Statut Membre Dernière intervention 1 août 2017 - 14 mars 2014 à 12:09
biche_35 Messages postés 34 Date d'inscription mercredi 4 décembre 2013 Statut Membre Dernière intervention 1 août 2017 - 14 mars 2014 à 12:09
A voir également:
- Sujet d'un mail Python
- Yahoo mail - Accueil - Mail
- Publipostage mail - Accueil - Word
- Citizen code python - Accueil - Outils
- Creer un compte mail - Guide
- Windows live mail - Télécharger - Mail
5 réponses
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
Modifié par gravgun le 13/03/2014 à 18:49
Modifié par gravgun le 13/03/2014 à 18:49
'lut, en SMTP ce genre d'infos circule dans les en-têtes du mail, qui sont juste devant le contenu du mail. Le nom de l'en-tête du sujet c'est "Subject"; voici comment faire:
from human import idiocy
del idiocy
def sendmail(message): server = smtplib.SMTP('localhost') server.set_debuglevel(1) message = 'Subject: Mon titre de mail\n\n' + message server.sendmail(fromaddr, toaddrs, message) server.quit()Attention toutefois, j'ai mis deux retours à la ligne
\n; si tu as d'autres en-têtes, il ne faut en mettre qu'un seul, car un double retour à la ligne détermine la fin du bloc des en-têtes.
from human import idiocy
del idiocy
biche_35
Messages postés
34
Date d'inscription
mercredi 4 décembre 2013
Statut
Membre
Dernière intervention
1 août 2017
13 mars 2014 à 18:54
13 mars 2014 à 18:54
Salut, fiou rapide intervention ;)
En tout cas ça a l'air de fonctionner ;)
Du coup je réfléchis à passer ça en argument de ma fonction "sendmail" et là je me dit que c'est pas gagné...
Merci bien de ta réponse
En tout cas ça a l'air de fonctionner ;)
Du coup je réfléchis à passer ça en argument de ma fonction "sendmail" et là je me dit que c'est pas gagné...
Merci bien de ta réponse
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
Modifié par gravgun le 13/03/2014 à 19:24
Modifié par gravgun le 13/03/2014 à 19:24
Si tu as la librairie email.mime.text à ta disposition, il existe l'objet
MIMETextqui peut prendre en charge les en-têtes à ta place, pour te simplifier le travail:
from email.mime.text import MIMEText as ... def sendmail(message): server = smtplib.SMTP('localhost') server.set_debuglevel(1) m = MIMEText(message) m['Subject'] = "Mon titre de mail" m['From'] = fromaddr m['To'] = toaddrs server.sendmail(fromaddr, toaddrs, m.as_string()) server.quit()
biche_35
Messages postés
34
Date d'inscription
mercredi 4 décembre 2013
Statut
Membre
Dernière intervention
1 août 2017
13 mars 2014 à 19:03
13 mars 2014 à 19:03
Arf, c'est juste que je compte utiliser cette fonction pour d'autre situation. Du coup, le sujet de mon mail est susceptible d'être modifier en fonction du fichier qui est envoyé. C'est d'ailleurs pour cette raison que je n'ai pas utiliser cette libraire.
J'insiste bien sur le fait de pouvoir insérer le sujet en argument de ma fonction 'sendmail'
J'insiste bien sur le fait de pouvoir insérer le sujet en argument de ma fonction 'sendmail'
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
Modifié par gravgun le 13/03/2014 à 19:07
Modifié par gravgun le 13/03/2014 à 19:07
def sendmail(message, titre): ... m['Subject'] = titrePas si dur :) Si tu veux un truc plus modulable
def sendmail(message, entetes): ... for key, value in entetes.iteritems(): m[key] = value
Puis
sendmail("abcMessage", {'Subject': "Mon sujet de mail"})
biche_35
Messages postés
34
Date d'inscription
mercredi 4 décembre 2013
Statut
Membre
Dernière intervention
1 août 2017
13 mars 2014 à 19:22
13 mars 2014 à 19:22
Désolé j'suis encore un peu noob sur le sujet...
Voici donc ma fonction après correction :
Puis mon appel de fonction :
Mais j'obtiens l'erreur suivante :
NameError: global name 'MIMEText' is not defined
Pareil si j'appel ma fonction de cette manière :
sendmail(result, {'Subject': "Mon sujet de mail"})
Pour info, j'ai bien pensé à importer ma librairie de cette manière :
Là, tu as atteint mes limites de compréhension :D
Voici donc ma fonction après correction :
def sendmail(message, sujet): server = smtplib.SMTP('localhost') server.set_debuglevel(1) m = MIMEText(message) m['Subject'] = sujet m['From'] = fromaddr m['To'] = toaddrs server.sendmail(fromaddr, toaddrs, m.as_string()) server.quit()
Puis mon appel de fonction :
sendmail(result, 'Voici mon sujet')
Mais j'obtiens l'erreur suivante :
NameError: global name 'MIMEText' is not defined
Pareil si j'appel ma fonction de cette manière :
sendmail(result, {'Subject': "Mon sujet de mail"})
Pour info, j'ai bien pensé à importer ma librairie de cette manière :
from email.mime.text import MIMEText as text
Là, tu as atteint mes limites de compréhension :D
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
13 mars 2014 à 19:24
13 mars 2014 à 19:24
Oups, le " as text" est en trop (j'ai copié la ligne depuis autre part, c'est pour ça). Enlèves le, ça devrait marcher
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
biche_35
Messages postés
34
Date d'inscription
mercredi 4 décembre 2013
Statut
Membre
Dernière intervention
1 août 2017
14 mars 2014 à 12:09
14 mars 2014 à 12:09
Salut,
Désolé de ma réponse tardive...
En tout cas bien joué, mon script fonctionne parfaitement.
Merci à toi en tout cas de ta patience ;)
Désolé de ma réponse tardive...
En tout cas bien joué, mon script fonctionne parfaitement.
Merci à toi en tout cas de ta patience ;)