Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/04/2025, à 17:17

Arbiel

[Résolu] message de demande de connexion au serveur bloqué

Bonjour

J'essaie d'envoyer des courriels avec un script python que j'ai utilisé il y a une dizaine d'années, avec succès. Actuellement, la connexion au serveur échoue. Je suppose que la cause en est l'absence d'envoi effectif au serveur de demande de connexion.

arbiel@arbiel-NJ5x-NJ7xLU:~$ python '/home/arbiel/Documents/familiaux/Communs/Appartements/Λοκατιονς/gestion des quittances/exemple envoi message.py'
début at line 34 in exemple envoi message.py
fin de ouverture at line 68 in exemple envoi message.py
serveur : mail.infomaniak.com at line 69 in exemple envoi message.py
port envoi : 465 at line 70 in exemple envoi message.py
Traceback (most recent call last):
  File "/home/arbiel/Documents/familiaux/Communs/Appartements/Λοκατιονς/gestion des quittances/exemple envoi message.py", line 72, in <module>
    server=smtplib.SMTP('mail.infomaniak.com', 465)
  File "/usr/lib/python3.10/smtplib.py", line 255, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python3.10/smtplib.py", line 343, in connect
    (code, msg) = self.getreply()
  File "/usr/lib/python3.10/smtplib.py", line 405, in getreply
    raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed

Il me semble que la difficulté ne vient ni du boîtier fibre ni du pare-feu. Avec un script réduit à la seule demande de connexion, j'obtiens les résultats suivants :

arbiel@arbiel-NJ5x-NJ7xLU:~$ python
Python 3.10.12 (main, Feb  4 2025, 14:57:36) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import smtplib
>>> # essai par l'internat de mon téléphone
>>> smtplib.SMTP("mail.infomaniak.com", 465)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.10/smtplib.py", line 255, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python3.10/smtplib.py", line 343, in connect
    (code, msg) = self.getreply()
  File "/usr/lib/python3.10/smtplib.py", line 405, in getreply
    raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed
>>> # essai sans réseau
>>> smtplib.SMTP("mail.infomaniak.com", 465)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.10/smtplib.py", line 255, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python3.10/smtplib.py", line 341, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/lib/python3.10/smtplib.py", line 312, in _get_socket
    return socket.create_connection((host, port), timeout,
  File "/usr/lib/python3.10/socket.py", line 824, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "/usr/lib/python3.10/socket.py", line 955, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution
>>> # essai avec réseau fixe (fibre)
>>> smtplib.SMTP("mail.infomaniak.com", 465)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.10/smtplib.py", line 255, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python3.10/smtplib.py", line 343, in connect
    (code, msg) = self.getreply()
  File "/usr/lib/python3.10/smtplib.py", line 405, in getreply
    raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed
>>> exit()
arbiel@arbiel-NJ5x-NJ7xLU:~$ 

En l'occurence j'utilise la 22.04. J'ai obtenu les mêmes résultats avec la 20.04.

Pour lever le doute sur la bibliothèque smtplib, je voudrais la réinstaller, mais je ne sais pas si je dois utiliser pip ou apt-get.

Merci d'avance à quiconque pourra m'indiquer ce que je dois faire.

Arbiel

Dernière modification par Arbiel (Le 09/04/2025, à 22:48)


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#2 Le 09/04/2025, à 17:32

iznobe

Re : [Résolu] message de demande de connexion au serveur bloqué

Bonjour , ce qui aurait été bien , c' est de montrer aussi ton script , plutot que uniquement les erreurs qu ' il produit non ?

m ' etonnerait fort que ce soit un soucis avec smtplib de toute maniere ...


perso j' utilise ce script actuellement :

#! /usr/bin/python
# coding: utf-8

import smtplib
from email.mime.text import MIMEText

# Define the subject of the email.
subject =  "sujet"
# Define the body of the email.
body = u"""\
ce que tu veux 
"""

# Define the sender's email address.
sender = "zebulon@ik.me"
# List of recipients to whom the email will be sent.
recipients = ["receveur@ik.me", "receveur2@gmail.com", "receveur3@gmail.com", "receveur4@ik.me", "receveur5@orange.fr"]
# Password for the sender's email account.
password = "my_secret_password"

def send_email(subject, body, sender, recipients, password):
    # Create a MIMEText object with the body of the email.
    msg = MIMEText(body)
    # Set the subject of the email.
    msg['Subject'] = subject
    # Set the sender's email.
    msg['From'] = sender
    # Join the list of recipients into a single string separated by commas.
    msg['To'] = ', '.join(recipients)

    # Connect to Gmail's SMTP server using SSL.
    with smtplib.SMTP_SSL('mail.infomaniak.com', 465) as smtp_server:
        # Login to the SMTP server using the sender's credentials.
        smtp_server.login(sender, password)
        # Send the email. The sendmail function requires the sender's email, the list of recipients, and the email message as a string.
        smtp_server.sendmail(sender, recipients, msg.as_string())
    # Print a message to console after successfully sending the email.
    print("Message sent!")
    with open ("/home/iznobe/projets_auto/logs/flotteur.log", "a", encoding = "utf8") as f :
        f.write("\n")
        f.write("email envoyé")

# Call the function to send the email.
send_email(subject, body, sender, recipients, password)

Dernière modification par iznobe (Le 09/04/2025, à 17:36)


retour COMPLET et utilisable de commande  |  script montage partitions

MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#3 Le 09/04/2025, à 20:05

Arbiel

Re : [Résolu] message de demande de connexion au serveur bloqué

Merci iznobe

Tu as parfaitement raison. Je n'ai pas montré mon script qui est relativement long, et j'ai eu tort.

Je viens d'exécuter le tien qui fonctionne parfaitement. Je sais donc que ce n'est par la bibliothèque smtplib qui est en cause.

Je vais comparer tes instructions avec les miennes pour essayer de comprendre la difficulté que j'ai rencontrée et je viendrai en rendre compte ici.

Arbiel


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#4 Le 09/04/2025, à 22:48

Arbiel

Re : [Résolu] message de demande de connexion au serveur bloqué

J'utilisais les instructions :

	mailServer = smtplib.SMTP("mail.infomaniak.com", 465)
	mailServer.ehlo()

	mailServer.starttls()
	mailServer.ehlo()

au lieu de

	smtp_server = smtplib.SMTP_SSL('mail.infomaniak.com', 465)

À vrai dire, je veux introduire une pièce jointe. Je vais reprendre le script complet, avec l'envoi de la pièce jointe en fonction de cette modification.

Merci encore

Arbiel


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne