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.