IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

mettre plusieurs fichiers dans un meme corps de mail


Sujet :

Réseau/Web Python

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 44
    Points : 34
    Points
    34
    Par défaut mettre plusieurs fichiers dans un meme corps de mail
    Bonjour, afin d'ameliorer un script,
    j'aimerais savoir comment faire pour envoyer un mail contenant plusieurs fichiers dans un meme corps .
    je pense que ca pourrait marcher de la facon suivante :
    sur le principe de fonctionnement, on suppose qu'il y est n fichiers qui se situe chacun a un endroit differents, donc mon programme va chercher chaque fichier, l'ouvre, lis, copie le corps dans le mail, puis ferme le fichier. puis va lire un autre fichier , louvre, le lis, copie le corps dans le mail ... ainsi de suite, jusqua ce que tous les fichiers soit lu et apres il l'envoi.

    le probleme etant que lorsque je matérialise cela en code, le script ouvre bien, lis bien, copie le corps, mais a la fin enfoi un mail par fichier lu, et non pas apres avoir lu lensemble des fichiers.

    serait il plus simple de faire une boucle qui envoit lis chaque fichier et en fait une copie dans un fichier de "stock" qui lui meme sera lu et envoyez par mail ???


    merci d'avance pour vos réponses

  2. #2
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    salut,

    tu peux nous montrer ton code?
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    oui biensur
    script mail :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    import string,smtplib 
    __all__ = ["send_email"]
    def send_email (body,adresse):
        dest=[adresse]
        fromaddr = 'adressededepart' 
        to_list = string.join(dest, ', ') 
        subject = 'TestingMail' 
        message = """ 
    Bonjour
     
    %(body)s 
    """    
        mail = smtplib.SMTP("serveur smtp",25)
        mail.set_debuglevel(1) 
        mail.sendmail(fromaddr, dest, message % locals()) 
        mail.quit()
    le "main" du programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #requete sql permettant de recuperer les differents chemin de fichier
    way = exl1JEU.exec_requete("""SELECT Directory FROM service  where idservice=%s"""%(j),2)
    	if way != None:
                    #varmail est une requete sql permettant de recuperer les     
                     adresses emails des differentes personnes
    		for j in varmail:
    			mail.send_email(open("erreurs.txt","r").read(),j)
    merci davance pour ton aide

    EDIT : le probleme vient aussi du fait que certaines personnes doivent recevoir le mail que d'un dossier endroit! alors que d'autres doivent tout recevoir

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2006
    Messages : 79
    Points : 92
    Points
    92
    Par défaut
    Je répondrais oui a ta question. Mais pourquoi lis-tu chacun des fichiers a attacher? Voici une fonction qui me permet d'attacher un ou plusieurs fichiers a un même courriel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    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
     
    def envoyerCourriel(arrRecipients, sender, subject, message, files=[]):
        """ Envoie un courriel """
        # adresse SMTP
        smtpserver = 'smtp.oricom.ca'
        # section authentification
        AUTHREQUIRED = 0 # if you need to use SMTP AUTH set to 1
        smtpuser = ''  # for SMTP AUTH, set SMTP username here
        smtppass = ''  # for SMTP AUTH, set SMTP password here
     
        # construction du corps du courriel
        mssg = MIMEMultipart()
        mssg['From'] = sender
        mssg['To'] = COMMASPACE.join(arrRecipients)
        mssg['Date'] = formatdate(localtime=True)
        mssg['Subject'] = subject
        mssg.attach( MIMEText(message) )
     
        # attacher des fichiers
        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))
            mssg.attach(part)
     
        session = smtplib.SMTP(smtpserver)
        if AUTHREQUIRED:
            session.login(smtpuser, smtppass)
        smtpresult = session.sendmail(sender, arrRecipients, mssg.as_string())
     
        if smtpresult:
            errstr = ""
            for recip in smtpresult.keys():
                errstr = """Could not delivery mail to: %s
     
        Server said: %s
        %s
     
        %s""" % (recip, smtpresult[recip][0], smtpresult[recip][1], errstr)
            raise smtplib.SMTPException, errstr
    Hana no iro wa
    Utsuri ni keri na

Discussions similaires

  1. Mettre plusieurs fichiers dans un seul fichier ou une table…
    Par wahab2052 dans le forum Développement de jobs
    Réponses: 7
    Dernier message: 21/09/2009, 20h41
  2. Réponses: 3
    Dernier message: 22/01/2009, 11h26
  3. pg_dump de plusieurs tables dans le meme fichier
    Par isma92 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 07/07/2008, 11h15
  4. Plusieurs class dans un meme fichier.java
    Par bipbip2006 dans le forum Langage
    Réponses: 4
    Dernier message: 10/12/2007, 10h35
  5. Réponses: 6
    Dernier message: 23/11/2006, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo