Ce module va permettre de pouvoir envoyer des mails.
- A une personne
- A un groupe
- Au chef de projet du groupe
#!/usr/bin/python
# -*- coding: ISO-8859-15 -*-
"""
module mail ; par BURNEY Remy
"""
""" importation module """
import smtplib
import time
def sendMail(exp, dest, obj, message):
""" envoi un mail en fonction de l'expéditeur, du destinataire, avec un objet, un message, par l'intermédiaire d'un serveur smtp """
date = time.ctime(time.time())
msg = """From: %s
Subject: %s
Date: %s
To: %s
\n\n %s """ %( exp, obj, date, exp, message)
s = smtplib.SMTP(messager)#smtp.free.fr; mail.clubinternet.fr ; ...
s.set_debuglevel(1)
s.sendmail(exp, dest, msg)
s.quit()
exemple :
sendMail("exp@voila.fr","dest@gmail.com","bonjour toi","coucou")
[
PyNatim] : C'est pas mal, il faut juste que tu rajoute quelques headers pour éviter le courrier indésirable.
[
PyNatim] :
MIME-Version: 1.0'
[
PyNatim] :
Content-type: text/html; charset=iso-8859-15
[
PyNatim] : Je suis plus partisant de mettre des
\r\n à la fin des lignes même si un retour effectif ou un
\n fonctionne.
[
PyNatim] : Utilise donc plutôt la concaténation pour faire un truc plus pro ;)
[
BurneyWiki] : Voici la nouvelle version du module mail, il est plus propre et plus fonctionel.
[
BurneyWiki] : La nouvelle version est conforme au règle que Mr Guyeux ma donnée.
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#
# Module mail ; par BURNEY Remy
# Réalisé le 10/11/2006
#
# Importations des modules nécessaires
import smtplib
import time
class mail:
"""
Class de gestion de mails pour l'application de Gestion de Projets de l'IUT de Belfort-Montbéliard.
------------------------------------------------------------------------------------------
Utilisation :
------------
from module_mail import *
monMail=mail([expediteur][, destinataire][, objet][, message][,serveur])
Méthodes implémentées :
- monMail.defExp(expediteur)
- monMail.defDest(destinataire)
- monMail.defObj(objet)
- monMail.defMsg(message)
- monMail.defServeur(serveur)
- monMail.sendMail([expediteur][, destinataire][, objet][, message][,serveur])
"""
exp="pas d'expediteur"
dest="pas de destinataire"
obj="pas d'objet"
msg="pas de message"
serveur="pas de serveur"
def __init__(self, exp = "", dest = "", obj = "", msg = "",serveur = ""):
"""Créer un mail :
monmail = mail([expediteur][, destinataire][, objet][, message])
Les paramètres, s'ils sont omis, seront à définir par la suite à l'aide des méthodes prévues à cet effet."""
if exp != "":
self.exp = exp
if dest != "":
self.dest = dest
if obj != "":
self.obj = obj
if msg != "":
self.msg = msg
if serveur != "":
self.serveur = serveur
def defExp(self, exp):
""" Définit un expéditeur par défaut :
monMail.defExp(expediteur)
ou expediteur est une chaine de caractères."""
self.exp = exp
def defDest(self, dest):
""" Définit un destinataire par défaut :
monMail.defDest(destinataire)
ou destinataire est une chaine de caractères."""
self.dest = dest
def defObj(self, obj):
""" Définit un objet par défaut :
monMail.defObj(objet)
ou objet est une chaine de caractères."""
self.obj = obj
def defMsg(self, msg):
""" Définit un message par défaut :
monMail.defMsg(message)
ou message est une chaine de caractères."""
self.msg = msg
def defServeur(self, serveur):
""" Définit un serveur par défaut :
monMail.defServeur(serveur)
ou serveur est une chaine de caractères."""
self.serveur = serveur
def sendMail(self, exp = self.exp, dest = self.dest, obj = self.obj, message = self.msg, serveur = self.serveur):
""" envoi un mail en fonction de l'expediteur, du destinataire,
avec un objet et un message, par l'intermediaire d'un serveur smtp
monMail.sendMail(expediteur, destinataire, objet, message, serveur)
monMail.sendMail() si les informations concernant le mail sont déja enregistré
ou expediteur, destinataire, objet, message et serveur sont des chaines de caractères."""
# recupère la date courante
date = time.ctime(time.time())
# definition du mail
msg = "From: %s\r\nSubject: %s\r\nDate: %s\r\nTo: %s\r\n\r\n %s" %( exp,
obj,
date,
dest,
message)
# ouverture d'une connexion avec le serveur
s = smtplib.SMTP(serveur)
# affichage du débuguage avec 1 sinon 0
s.set_debuglevel(0)
# envoi du mail
s.sendmail(exp, dest, msg)
# fermeture de la connexion avec le serveur
s.quit()