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 :

Envoi d'archive Zip avec smtplib


Sujet :

Réseau/Web Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Envoi d'archive Zip avec smtplib
    Bonjour,

    Je fais un script qui parcours un dossier et qui créer un archive Zip à partir des fichiers images créer et qui doit envoyer le zip par mail.
    Le problème c'est que l'envoi ne fonctionne pas.

    J'ai l'erreur suivante (time out à chaque fois).



    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
    Traceback (most recent call last):
      File "./app.py", line 109, in <module>
        WalkDirectory("/root/nashebi/gal7/")
      File "./app.py", line 30, in WalkDirectory
        zip("archive.zip", root + name)
      File "./app.py", line 52, in zip
        send2(zip_archive)
      File "./app.py", line 101, in send2
        smtp = smtplib.SMTP('smtp.google.com')
      File "/usr/local/lib/python3.0/smtplib.py", line 239, in __init__
        (code, msg) = self.connect(host, port)
      File "/usr/local/lib/python3.0/smtplib.py", line 295, in connect
        self.sock = self._get_socket(host, port, self.timeout)
      File "/usr/local/lib/python3.0/smtplib.py", line 273, in _get_socket
        return socket.create_connection((host, port), timeout)
      File "/usr/local/lib/python3.0/socket.py", line 307, in create_connection
        raise error(msg)
    socket.error: [Errno 110] Connection timed out
    Mais je crois que comme paramètre de sendmail pose problème.

    Voici le code de la fonction
    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
     
    def send_mail(attachment):
        msg = MIMEMultipart()
        msg['From'] = MAIL_FROM
        msg['To'] = MAIL_TO
        msg['Subject'] = MAIL_SUBJECT
     
        part = MIMEBase('application', "zip")
        part.set_payload( open(attachment,"rb").read() )
        encode_base64(part)
        part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(attachment))
        msg.attach(part)
        # HANDLE: socket.error: [Errno 110] Connection timed out
        smtp = smtplib.SMTP(SMTP_SERVER)
        smtp.sendmail(MAIL_FROM, MAIL_TO, msg.as_string())
        smtp.close()
    Merci d'avance.

    N.B: J'ai déjà essayer de voir sur le web mais je rien trouvé de convaincant.

  2. #2
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Vu l'erreur ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      File "/usr/local/lib/python3.0/socket.py", line 307, in create_connection
        raise error(msg)
    socket.error: [Errno 110] Connection timed out
    j'aurais tendance à dire que ton serveur smtp ne répond pas.

    Essayes, en ligne de commande, de te connecter à ton serveur smtp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    telnet <adresse_ip du serveur> 25
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    telnet smtp.orange.fr 25
    si ton serveur réponds tu devrais avoir une ligne du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    220 mwinf2e29.orange.fr ESMTP ABO **************************
    sinon tu auras
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Connexion à smtp1.orange.fr...Impossible d'ouvrir une connexion à l'hôte, sur le
    port 25: Échec lors de la connexion
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Je viens d'essayer de me connecter avec telnet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    telnet smtp.google.com 25
    et j'ai effectivement un timeout.

    Mais que faire dans ce cas?

  4. #4
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Utiliser un serveur smtp auquel tu as accès ^^ Par exemple le serveur smtp de ton FAI.

    Si tu tiens à utiliser celui de gmail, le serveur est smtp.gmail.com et le port 587, par contre il demande une authentification pour envoyer un mail.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    J'ai mis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    smtp = smtplib.SMTP('smtp.gmail.com', 587)
    mais maintenant, j'ai carrément: Connection refused.

    Que faire?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Finalement je me suis aidé avec ce lien: http://stackoverflow.com/questions/3...python-example.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Archive::Zip] - probleme avec extractToFileHandle
    Par syneau dans le forum Modules
    Réponses: 4
    Dernier message: 10/02/2011, 16h26
  2. problème CRON avec archives .zip
    Par siuol77 dans le forum Langage
    Réponses: 7
    Dernier message: 27/07/2010, 11h26
  3. Plusieurs problèmes avec copie d'archives zip
    Par mithrendil dans le forum C#
    Réponses: 3
    Dernier message: 27/06/2010, 22h46
  4. Archive ZIP avec mot de passe
    Par CocoLeNain dans le forum Sécurité
    Réponses: 0
    Dernier message: 13/04/2010, 18h04
  5. Ouvrir les archive zip avec l'explorateur windows
    Par koKoTis dans le forum Windows XP
    Réponses: 2
    Dernier message: 20/08/2006, 23h17

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