Erreur d'indentation Python ?

Résolu/Fermé
Lyunalia Messages postés 6 Date d'inscription lundi 17 mai 2021 Statut Membre Dernière intervention 18 mai 2021 - Modifié le 17 mai 2021 à 14:37
Lyunalia Messages postés 6 Date d'inscription lundi 17 mai 2021 Statut Membre Dernière intervention 18 mai 2021 - 18 mai 2021 à 09:13
Bonjour,

Je veux créer une boucle pour envoyer des mails en récupérant des infos sur une base de données. Problème, une partie du programme ne se prend pas dans la boucle "for" de mon programme.

Aidez-moi s'il vous plait !



import smtplib, ssl
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

import pymysql.cursors 


import os


# YAY ON EST CO LA C'EST BIEN
baseDeDonnees = pymysql.connect(host='127.0.0.1',
                             user='root',                     
                             db='marchestp',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)
print ("YAY ON EST CO")

#####################################SELECTIONNER LES CRITERES ICI, ON AMELIORERA APRES##############################################################

curseur = baseDeDonnees.cursor()
curseur.execute("SELECT Mail, Nom, Prenom FROM feuille_de_calcul_sans_titre___feuille_1 WHERE Envoi = 'x'")

myresult = curseur.fetchall()

############################################## on rentre les renseignements pris sur le site du fournisseur
smtp_address = 'smtp.gmail.com'
smtp_port = 465

# on rentre les informations sur notre adresse e-mail
email_address = 'E******@gmail.com'
email_password = '*****'


# on rentre les informations sur le destinataire

            




########################################ON COMMENCE LA BOUCLE##########################################

for chaine in myresult:
 
    email_receiver = chaine["Mail"]
    
    Nom = chaine["Nom"]
    
    Prenom = chaine["Prenom"]
    
    Mail = chaine["Mail"]
    
    #print(Mail,Nom,Prenom)

        
    # on crée un e-mail
    message = MIMEMultipart("alternative")
    # on ajoute un sujet
    message["Subject"] = "SolareWatt Lodévois"
    # un émetteur
    message["From"] = email_address

    # un destinataire
    message["To"] = 'spammed327@gmail.com'


    # on crée un texte et sa version HTML
    texte = '''
    Bonjour 
    Coucou on peut utiliser ce logiciel pour des souscriptions automatiques
    Cdt
    Parfait
    '''
    #ici on va mettre le texte dans le mail




    if "gmail.com" in email_receiver:

        html = '''
        <html>
        <body> 
        <h1>Bonjour {Nom} {Prenom}</h1>
        <p>Ecolodeve vous remercie pour votre souscription au projet SolaireWatt</p>
        <br>
        S'il vous manque des documents, ils vont s'afficher ci-dessous :
        <   b></b>
        <br>{id_card} {RIB} {justification} {bon}
        
        <br> <p>Merci à vous !</p>
        <br>
        <br><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAT4AAACfCAMAAABX0UX9AAABJlBMVEX//////v////3xfwH9///xfAAAL2DxgADxegAALFzweAAAI1jwfQAAKVsuSXH88N7ymEsbQ23+/fj79enh5+zS2uHx9PZEYoIAMF/xhQD1uIQoQWrCytXvcgAAH1YAKFv0sHT23cH1wID0p******8BluSF17d/JZwAAAAASUVORK5CYII=">
        Je suis un gentil bot ! pardonnez mes bugs, mon créateur est un débutant !
        <br>
        <img style="position:absolute;top:0.86in;left:0.45in;width:2.58in;height:1.38in" src="https://i.ibb.co/wYDtpjT/ri-1.png" />
        <img style="position:absolute;top:8.46in;left:0.88in;width:2.55in;height:0.92in" src="https://i.ibb.co/Trh6vrx/ri-2.png" />'''.format(**locals())    
    else:
        

        html = '''
        <head>
        <link rel="stylesheet" type="text/css" href="style.css"/>
        </head>
        <body>
        <div style="position:absolute;top:11.43in;left:3.54in;width:1.97in;line-height:0.12in;"><span style="font-style:normal;font-weight:normal;font-size:9pt;font-family:TimesNewRomanPSMT;color:#000000">SAS SOLAIREWATT LODEVOIS</span><span style="font-style:normal;font-weight:normal;font-size:9pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>
        <div style="position:absolute;top:11.59in;left:2.92in;width:3.21in;line-height:0.12in;"><span style="font-style:normal;font-weight:normal;font-size:9pt;font-family:Times New Roman;color:#000000">Société par actions simplifiée au capital variable de 5000€</span><span style="font-style:normal;font-weight:normal;font-size:9pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>
        <div style="position:absolute;top:11.74in;left:3.12in;width:2.82in;line-height:0.12in;"><span style="font-style:normal;font-weight:normal;font-size:9pt;font-family:TimesNewRomanPSMT;color:#000000">Numéro Siret : 89229979300018-RCS Montpellier</span><span style="font-style:normal;font-weight:normal;font-size:9pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>
        <div style="position:absolute;top:11.90in;left:3.76in;width:1.54in;line-height:0.12in;"><span style="font-style:normal;font-weight:normal;font-size:9pt;font-family:TimesNewRomanPSMT;color:#000000">906 avenue Paul Teisserenc</span><span style="font-style:normal;font-weight:normal;font-size:9pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>
        <div style="position:absolute;top:12.06in;left:4.12in;width:0.82in;line-height:0.12in;"><span style="font-style:normal;font-weight:normal;font-size:9pt;font-family:TimesNewRomanPSMT;color:#000000">34700 Lodève</span><span style="font-style:normal;font-weight:normal;font-size:9pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>
        <div style="position:absolute;top:2.24in;left:4.94in;width:1.14in;line-height:0.17in;"><span style="font-style:normal;font-weight:normal;font-size:12pt;font-family:TimesNewRomanPSMT;color:#000000">{Nom} {Prenom}</span><span style="font-style:normal;font-weight:normal;font-size:12pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>
        <div style="position:absolute;top:2.45in;left:4.94in;width:1.34in;line-height:0.17in;"><span style="font-style:normal;font-weight:normal;font-size:12pt;font-family:TimesNewRomanPSMT;color:#000000">On met l'adresse plus tard dac ?</span><span style="font-style:normal;font-weight:normal;font-size:12pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>
        <div style="position:absolute;top:2.66in;left:4.94in;width:0.50in;line-height:0.17in;"><span style="font-style:normal;font-weight:normal;font-size:12pt;font-family:TimesNewRomanPSMT;color:#000000">34290</span><span style="font-style:normal;font-weight:normal;font-size:12pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>
        <div style="position:absolute;top:2.87in;left:4.94in;width:0.60in;line-height:0.17in;"><span style="font-style:normal;font-weight:normal;font-size:12pt;font-family:TimesNewRomanPSMT;color:#000000">Servian</span><span style="font-style:normal;font-weight:normal;font-size:12pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>
        <div style="position:absolute;top:3.92in;left:6.24in;width:1.97in;line-height:0.15in;"><span style="font-style:normal;font-weight:normal;font-size:11pt;font-family:TimesNewRomanPSMT;color:#000000">Lodève, le jeudi 8 avril 2021</span><span style="font-style:normal;font-weight:normal;font-size:11pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>
        <div style="position:absolute;top:4.95in;left:3.13in;width:2.79in;line-height:0.15in;"><span style="font-style:normal;font-weight:bold;font-size:11pt;font-family:TimesNewRomanPS-BoldMT;color:#000000">SOUSCRIPTION AU PROJET SOLAIREWATT</span><span style="font-style:normal;font-weight:bold;font-size:11pt;font-family:TimesNewRomanPS-BoldMT;color:#000000"> </span><br/></SPAN></div>
        <div style="position:absolute;top:5.36in;left:0.86in;width:6.58in;line-height:0.15in;"><span style="font-style:normal;font-weight:normal;font-size:11pt;font-family:TimesNewRomanPSMT;color:#000000">Nous confirmons votre souscription de </span><span style="font-style:normal;font-weight:normal;font-size:12pt;font-family:TimesNewRomanPSMT;color:#000000">1</span><span style="font-style:normal;font-weight:normal;font-size:11pt;font-family:TimesNewRomanPSMT;color:#000000"> part(s) au capital social de la SAS Solairewatt Lodévois.</span><span style="font-style:normal;font-weight:normal;font-size:12pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>
        <div style="position:absolute;top:5.57in;left:0.86in;width:5.75in;line-height:0.15in;"><span style="font-style:normal;font-weight:normal;font-size:11pt;font-family:TimesNewRomanPSMT;color:#000000">Grâce à votre apport, la Région Occitanie versera également, la somme de </span><span style="font-style:normal;font-weight:normal;font-size:12pt;font-family:TimesNewRomanPSMT;color:#000000">100</span><span style="font-style:normal;font-weight:normal;font-size:11pt;font-family:TimesNewRomanPSMT;color:#000000"> euros.</span><span style="font-style:normal;font-weight:normal;font-size:12pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>
        <div style="position:absolute;top:5.97in;left:0.86in;width:7.29in;line-height:0.15in;"><span style="font-style:normal;font-weight:normal;font-size:11pt;font-family:TimesNewRomanPSMT;color:#000000">Cependant, il vous reste quelque(s) document(s) à envoyer</span><span style="font-style:normal;font-weight:normal;font-size:11pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>

        <div style="position:absolute;top:7.37in;left:0.86in;width:2.74in;line-height:0.15in;"><span style="font-style:normal;font-weight:normal;font-size:11pt;font-family:TimesNewRomanPSMT;color:#000000">Un grand merci pour votre participation.</span><span style="font-style:normal;font-weight:normal;font-size:11pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>
        <div style="position:absolute;top:7.96in;left:0.86in;width:0.90in;line-height:0.15in;"><span style="font-style:normal;font-weight:normal;font-size:11pt;font-family:TimesNewRomanPSMT;color:#000000">Marc Padilla</span><span style="font-style:normal;font-weight:normal;font-size:11pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>
        <div style="position:absolute;top:8.15in;left:0.86in;width:1.95in;line-height:0.15in;"><span style="font-style:normal;font-weight:normal;font-size:11pt;font-family:TimesNewRomanPSMT;color:#000000">P/SAS Solairewatt Lodévois</span><span style="font-style:normal;font-weight:normal;font-size:12pt;font-family:TimesNewRomanPSMT;color:#000000"> </span><br/></SPAN></div>
        <img style="position:absolute;top:0.86in;left:0.45in;width:2.58in;height:1.38in" src="https://i.ibb.co/wYDtpjT/ri-1.png" />
        <img style="position:absolute;top:8.46in;left:0.88in;width:2.55in;height:0.92in" src="https://i.ibb.co/Trh6vrx/ri-2.png" />
        </body>
        </html>
        '''.format(**locals())    



    # on crée deux éléments MIMEText 
    texte_mime = MIMEText(texte, 'plain')
    html_mime = MIMEText(html, 'html')

    # on attache ces deux éléments 
    message.attach(texte_mime)
    message.attach(html_mime)

    # on crée la connexion
    context = ssl.create_default_context()
    with smtplib.SMTP_SSL(smtp_address, smtp_port, context=context) as server:
      # connexion au compte
      server.login(email_address, email_password)
      # envoi du mail
      server.sendmail(email_address, 'spammed327@gmail.com', message.as_string())
    #email_receiver

    # Nom = Nom +'.txt'

    # data=open(Nom,'w+')
    # data.write(id_card+RIB+justification+bon)
    # data.close()

    print('Mail envoyé')




    



Configuration: Windows / Chrome 90.0.4430.212

5 réponses

yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
17 mai 2021 à 14:31
bonjour,
quelle partie ne prend pas?
n'oublie pas de préciser le langage quand tu utilises les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
le cas échéant, ajoute des print() pour suivre ce que fait ton code.
0
Lyunalia Messages postés 6 Date d'inscription lundi 17 mai 2021 Statut Membre Dernière intervention 18 mai 2021
17 mai 2021 à 15:08
Rien ne prend à partir de "# on crée un e-mail". Merci, j'oublierai pas la prochaine fois !
0
yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
17 mai 2021 à 15:19
que veux-tu dire par "rien ne prend"?
que résultat attends-tu, quel résultat obtiens-tu?
0
Lyunalia Messages postés 6 Date d'inscription lundi 17 mai 2021 Statut Membre Dernière intervention 18 mai 2021
17 mai 2021 à 15:22
j'ai un problème d'indentation à chaque ligne. Il veut que je supprime l'indentation mais je veux rester dans la boucle for :/
0
yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
17 mai 2021 à 15:26
je n'ai pas de problème d'indentation avec le code que tu as partagé.
0
Lyunalia Messages postés 6 Date d'inscription lundi 17 mai 2021 Statut Membre Dernière intervention 18 mai 2021 > yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
17 mai 2021 à 15:30
J'ai ce message chaque ligne... Moi non plus je ne vois pas d'erreur d'indentation :(

>>> # un émetteur
>>> message["From"] = email_address
File "<stdin>", line 1
message["From"] = email_address
IndentationError: unexpected indent
>>>
>>> # un destinataire
>>> message["To"] = 'spammed327@gmail.com'
File "<stdin>", line 1
message["To"] = 'spammed327@gmail.com'
IndentationError: unexpected indent
>>>
0
yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > Lyunalia Messages postés 6 Date d'inscription lundi 17 mai 2021 Statut Membre Dernière intervention 18 mai 2021
17 mai 2021 à 15:39
as-tu essayé à partir du code que tu as partagé ici?
0
Lyunalia Messages postés 6 Date d'inscription lundi 17 mai 2021 Statut Membre Dernière intervention 18 mai 2021
Modifié le 17 mai 2021 à 16:08
>>> for chaine in myresult:
...
... email_receiver = chaine["Mail"]
...
... Nom = chaine["Nom"]
...
... Prenom = chaine["Prenom"]
...
... Mail = chaine["Mail"]
...
... #print(Mail,Nom,Prenom)
...
>>>
>>> # on crée un e-mail
>>> message = MIMEMultipart("alternative")
File "<stdin>", line 1
message = MIMEMultipart("alternative")
IndentationError: unexpected indent
>>> # on ajoute un sujet
>>> message["Subject"] = "SolareWatt Lodévois"
File "<stdin>", line 1
message["Subject"] = "SolareWatt Lodévois"
IndentationError: unexpected indent
>>> # un émetteur
>>> message["From"] = email_address
File "<stdin>", line 1
message["From"] = email_address
IndentationError: unexpected indent
>>>
>>> # un destinataire
>>> message["To"] = 'spammed327@gmail.com'
File "<stdin>", line 1
message["To"] = 'spammed327@gmail.com'
IndentationError: unexpected indent
>>>



Comme vous pouvez voir, la première partie fonctionne mais ça bloque sur l'indentation après. Pourtant c'est bien indenté pour correspondre à la boucle for
0
yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
17 mai 2021 à 16:51
j'ai fait un copier/coller du code que tu as partagé, cela n'a pas donné ce genre d'erreur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lyunalia Messages postés 6 Date d'inscription lundi 17 mai 2021 Statut Membre Dernière intervention 18 mai 2021
Modifié le 18 mai 2021 à 09:14
Bonjour ! Je viens de voir le problème (qui n'a pas de sens), j'ai retiré toutes les interlignes et ça a marché !
0