45 votes

Sendmail Errno[61] Connexion refusée

J'ai essayé de faire en sorte que mon application envoie du texte généré à un e-mail. Pour simplifier j'ai isolé le script :

 import smtplib
import sys
import os

SERVER = "localhost"

FROM = os.getlogin()
TO = [raw_input("To : ")]

SUBJECT = "Message From " + os.getlogin()

print "Message : (End with ^D)"
TEXT = ''
while 1:
    line = sys.stdin.readline()
    if not line:
        break
    TEXT = TEXT + line

# Prepare actual message

message = """\
From: %s
To: %s
Subject: %s

%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)

# Send the mail

server = smtplib.SMTP(SERVER)
server.sendmail(FROM, TO, message)
server.quit()

Ce script génère :

     Traceback (most recent call last):
  File "/Users/christianlaustsen/Dropbox/Apps - Python/mail/smtplib_mail.py", line 32, in <module>
    server = smtplib.SMTP(SERVER)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/smtplib.py", line 239, in __init__
    (code, msg) = self.connect(host, port)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/smtplib.py", line 295, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/smtplib.py", line 273, in _get_socket
    return socket.create_connection((port, host), timeout)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/socket.py", line 512, in create_connection
    raise error, msg
error: [Errno 61] Connection refused

Comme vous pouvez le voir, la connexion est refusée. J'exécute Python 2.6 sur Mac OS X Snow Leopard (si cela est pertinent).

J'ai beaucoup cherché, mais je n'ai pas trouvé de solution. Toute aide serait appréciée.

60voto

Gabriel Ferrer Points 253

Si vous démarrez un serveur local comme suit :

python -m smtpd -n -c Serveur de débogage localhost:1025

Assurez-vous de modifier le code d'envoi du courrier pour utiliser le numéro de port non standard :

 server = smtplib.SMTP(SERVER, 1025)
server.sendmail(FROM, TO, message)
server.quit()

16voto

Adam Matan Points 15690

Je suppose que vous n'avez pas de serveur SMTP installé sur votre machine locale.

Si vos e-mails ne sont pas sensibles, ouvrez un compte Gmail et envoyez vos e-mails en l'utilisant avec Python .

16voto

Raj Points 955

Démarrez un simple serveur SMTP avec Python comme ceci :

 python -m smtpd -n -c DebuggingServer localhost:1025

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X