Partage
  • Partager sur Facebook
  • Partager sur Twitter

Envoi mail Python via liste Excel avec paramètre

Sujet résolu
    3 décembre 2020 à 10:05:57

    Bonjour,

    J'ai un script pour envoyer un mail via un liste Excel qui marche parfaitement bien.

    Mais maintenant j'aimerai y rajouter un paramètre dans ma liste Excel pour qu'ils n'envoi des mail qu'a ceux qui Oui dans la colonne Paramètre

    J'ai trouver un plugin qui fonctionne très bien sur les feuille Excel et qui récupère les les informations des colonnes, par contre je n'arrive pas y faire une comparaison.

    from openpyxl import load_workbook
    import smtplib
    from openpyxl import Workbook
    monMail="MonAdresseMail" #Adresse mail sur gmail qui sert à l’authentification
    monPassword="MonMotDePasse" # Mot de passe de l’adresse monMail
    
    smtpserver='smtp.MonServerDeMessagerie.ch'
    port=587
    server=smtplib.SMTP(smtpserver,port)
    server.ehlo()
    server.starttls()
    server.login(monMail,monPassword)
    
    wb = load_workbook("test.xlsx")
    ws = wb["Feuil1"]
    
    for col in ws.iter_cols(min_col=4, max_col=4, values_only=True):
        colD = col
        print(colD)
    
    i=2
    
    if colD == "True" :
        #while ws['C'+str(i)].value != None:
            ToAddress=ws['C'+str(i)].value
            #nom=ws['A'+str(i)].value
            #prenom=ws['B'+str(i)].value
            #msg="\nBonjour " + nom + " " + prenom + " Ceci est un test d'envoi"
            #server.sendmail(monMail,ToAddress,"From: "+monMail + "\n" + msg)
            print("Message sent to " + ToAddress)
    
            #i=i+1
    else:
        print("Erreur")



    -
    Edité par DavidWeber4 3 décembre 2020 à 10:49:31

    • Partager sur Facebook
    • Partager sur Twitter
      3 décembre 2020 à 11:26:03

      il faudrait plutôt faire une boucle avec ws.iter_rows(min_row=1, max_col=4, max_row=25)

      ou dans ta boucle while

      ws.cell(row=i,column=4).value pour accéder à la valeur de la cellule Di (D étant la colonne 4) et donc l'utiliser pour regarder si elle contient "Oui" par exemple

      ou comme tu le fais déjà ws['D' +str(i)].value == "Oui" (en supposant que le "Oui" est dans la colonne 4

      from openpyxl import load_workbook
      import smtplib
      from openpyxl import Workbook
      monMail="MonAdresseMail" #Adresse mail sur gmail qui sert à l’authentification
      monPassword="MonMotDePasse" # Mot de passe de l’adresse monMail
       
      smtpserver='smtp.MonServerDeMessagerie.ch'
      port=587
      server=smtplib.SMTP(smtpserver,port)
      server.ehlo()
      server.starttls()
      server.login(monMail,monPassword)
       
      wb = load_workbook("test.xlsx")
      ws = wb["Feuil1"]
       
       
      i=2
      while ws['C'+str(i)].value != None:
          if ws['D'+str(i)].value.lower() == "oui":
              ToAddress=ws['C'+str(i)].value
              nom=ws['A'+str(i)].value
              prenom=ws['B'+str(i)].value
              msg="\nBonjour " + nom + " " + prenom + " Ceci est un test d'envoi"
              server.sendmail(monMail,ToAddress,"From: "+monMail + "\n" + msg)
              print("Message sent to " + ToAddress)
          else:
              print("la personne a refusé l'envoie d'email")
          i=i+1
      



      • Partager sur Facebook
      • Partager sur Twitter
        3 décembre 2020 à 11:44:51

        Merci infiniment, Je suis encore novice dans python et certain plugin me sont encore très floue.
        • Partager sur Facebook
        • Partager sur Twitter
          3 décembre 2020 à 12:09:43

          ils ont pour certaines une documentation (https://openpyxl.readthedocs.io/en/stable/ ) après il faut essayer par tâtonnement
          • Partager sur Facebook
          • Partager sur Twitter

          Envoi mail Python via liste Excel avec paramètre

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown