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

Python Discussion :

Stocker un mail en cas d'erreur de connexion


Sujet :

Python

  1. #1
    Membre du Club Avatar de dodineau
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 98
    Points : 50
    Points
    50
    Par défaut Stocker un mail en cas d'erreur de connexion
    Bonjour,
    J'ai un simple code qui permet d'envoyer un mail basique.

    On entre son login (gmail), On entre son pass (gmail), On entre l'adresse du destinataire.
    Le mail part...
    Ca c'est dans le meilleur des cas.

    Si je n'ai pas de connexion wifi ou 4g, il y a un test (try) pour ne pas créer d'erreur et sortir du programme.

    Ce que je recherche à faire, c'est un sorte de "boite d'envoi" qui stockerait les mails en erreur et qui les enverrait quand la connexion revient.

    Mon code actuel : mail_dev.zip

    Merci pour votre aide.

    A+
    Je ne suis ni pour ni contre, bien au contraire...

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par dodineau Voir le message
    Ce que je recherche à faire, c'est un sorte de "boite d'envoi" qui stockerait les mails en erreur et qui les enverrait quand la connexion revient.
    Peut être que vous pourriez commencer par stocker les mails en erreur dans autant de fichiers d'un répertoire "envoi". Lorsque la connexion revient, il suffit d'expédier le contenu des différents fichiers.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre du Club Avatar de dodineau
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 98
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,
    Peut être que vous pourriez commencer par stocker les mails en erreur dans autant de fichiers d'un répertoire "envoi".
    - W
    Oui c'est ce que je pensais faire.
    Mais je voudrais être sûr que le mail est envoyé.
    Pour l'instant mon "try" ne fait que contrôler la connexion avec gmail mais ça ne contrôle pas si le mail est bien parti.
    Existe-t-il une commande qui récupérerait une sorte de validation de bon envoi ?
    Je ne suis ni pour ni contre, bien au contraire...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par dodineau Voir le message
    Existe-t-il une commande qui récupérerait une sorte de validation de bon envoi ?
    Il suffit d'ouvrir la documentation du module smtplib et de regarder comment fonctionne sendmail.
    note: ce que vous êtes supposé avoir fait avant d'écrire ce code.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre du Club Avatar de dodineau
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 98
    Points : 50
    Points
    50
    Par défaut
    J'ai regardé cette documentation et j'ai essayé de mettre toutes les différentes exceptions mais rien ne fonctionne.

    pour envoyer le mail j'ai mis cette commande avec les exceptions pour voir ce qui provoque une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    try:
        server.sendmail(from_addr, to_addr, text)
    except smtplib.SMTPConnectError as err :
        print ("connecterror")
    except socket.timeout as err:
        print ("Timedout")
    except smtplib.SMTPServerDisconnected as err:
        print("Disconnected")
    mon programme bloque en attente sans aucun message. Dès que je me reconnecte au wifi le mail s'envoie.
    Moi ce que je voudrais c'est qu'en cas de non connexion le programme passe à l'étape suivante sans attendre indéfiniment.
    Je ne suis ni pour ni contre, bien au contraire...

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par dodineau Voir le message
    Moi ce que je voudrais c'est qu'en cas de non connexion le programme passe à l'étape suivante sans attendre indéfiniment.
    La connexion est créé par la ligne server = smtplib.SMTP...
    Elle dure tant que ce n'est pas terminé (et ignore la déconnexion/reconnexion du Wifi) ou que çà parte en timeout (qui, par défaut, peut être long si vous ne le changez pas).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre du Club Avatar de dodineau
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 98
    Points : 50
    Points
    50
    Par défaut
    Il faudrait donc que je paramètre le timeout ?
    Je ne suis ni pour ni contre, bien au contraire...

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par dodineau Voir le message
    Il faudrait donc que je paramètre le timeout ?
    C'est vous qui programmez, vous essayez et vous décidez.

    note: vous n'êtes pas en train d'essayer de coder l'exercice d'un tuto. donc vous êtes supposé savoir un peu ce que sont sockets, protocoles TCP/IP et SMTP, ... Vous devez être aussi capable d'un minimum initiative pour tester que les options (que vous avez) retenues fonctionnent...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre du Club Avatar de dodineau
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 98
    Points : 50
    Points
    50
    Par défaut
    Pas trop facile quand on n'a pas de bases en communications...
    J'ai fait quelques modifs qui fonctionnent mais je pense que certaines choses peuvent être transformées car pas trop "catholiques".
    Voici le code mail_dev_2.zip

    A vous lire...

    A+
    Je ne suis ni pour ni contre, bien au contraire...

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par dodineau Voir le message
    Pas trop facile quand on n'a pas de bases en communications...
    C'est pour cela qu'il y a des tutos.

    Citation Envoyé par dodineau Voir le message
    J'ai fait quelques modifs qui fonctionnent mais je pense que certaines choses peuvent être transformées car pas trop "catholiques".
    Votre code n'est pas si long et tiens dans un seul fichier: utilisez la balise code pour le poster (le # dans la barre d'édition)... c'est quand même plus facile/simple à lire que récupérer un .zip, en extraire le script,...

    Je ne comprends pas pourquoi vous vous connectez d'abord suivant le protocole 80: il peu répondre à ce port là sans pour autant répondre au port 587.
    De plus, pourquoi avoir mis un timeout sur toutes les sockets? Normalement, smtplib.SMTP vous permet d'en donner un à la socket qu'il ouvre.

    Enfin, tout cela n'est que digression par rapport au sujet initial:

    Citation Envoyé par dodineau Voir le message
    Ce que je recherche à faire, c'est un sorte de "boite d'envoi" qui stockerait les mails en erreur et qui les enverrait quand la connexion revient.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Suspendre l'envoi de mail en cas d'erreur de Load
    Par samgratt dans le forum QlikView
    Réponses: 0
    Dernier message: 22/08/2016, 16h09
  2. afficher la pile en cas d'erreur
    Par fabrice1596 dans le forum Langage
    Réponses: 6
    Dernier message: 01/06/2005, 15h01
  3. Réponses: 7
    Dernier message: 15/03/2005, 14h44
  4. Redirection en cas d'erreur sur una page
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 03/09/2004, 09h18

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