[Python] [Beginner's question] Inviare una mail tramite smtplib.

Gabriele Battaglia iz4apu a libero.it
Mer 18 Feb 2015 11:59:54 CET


Ciao a tutti.

Quella che segue è una domanda da parte di un super principiante.

Lo scopo è imparare l'utilizzo del modulo smtplib per inviare una mail.

Dalla libreria di riferimento, ho copiato questo script e l'ho eseguito:

***Start copy***
# Invio mail, studio

import smtplib

def prompt(prompt):
     return raw_input(prompt).strip()

fromaddr = prompt("From: ")
toaddrs  = prompt("To: ").split()
print "Enter message, end with ^D (Unix) or ^Z (Windows):"
# Add the From: and To: headers at the start!
msg = ("From: %s\r\nTo: %s\r\n\r\n"
        % (fromaddr, ", ".join(toaddrs)))
while 1:
     try:
         line = raw_input()
     except EOFError:
         break
     if not line:
         break
     msg = msg + line
print "Message length is " + repr(len(msg))
# Nella riga qui sotto sostituisco smtplib.SMTP con smtplib.SMTP_SSL, 
perchè il mio provider la richiede
server = smtplib.SMTP_SSL('localhost')
server.set_debuglevel(1)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
***End copy***

E questa è l'esecuzione:

***Start Output***
C:\Dropbox\py>mailsmtp.py
From: mia.mail a io.it
To: mia.mail2 a ancoraio.it
Enter message, end with ^D (Unix) or ^Z (Windows):
Test
^Z
Message length is 62
Traceback (most recent call last):
   File "C:\Dropbox\py\mailsmtp.py", line 24, in <module>
     server = smtplib.SMTP_SSL('localhost')
   File "C:\Python27\lib\smtplib.py", line 792, in __init__
     SMTP.__init__(self, host, port, local_hostname, timeout)
   File "C:\Python27\lib\smtplib.py", line 256, in __init__
     (code, msg) = self.connect(host, port)
   File "C:\Python27\lib\smtplib.py", line 316, in connect
     self.sock = self._get_socket(host, port, self.timeout)
   File "C:\Python27\lib\smtplib.py", line 797, in _get_socket
     new_socket = socket.create_connection((host, port), timeout)
   File "C:\Python27\lib\socket.py", line 571, in create_connection
     raise err
socket.error: [Errno 10061] Impossibile stabilire la connessione. 
Rifiuto persis
tente del computer di destinazione

C:\Dropbox\py>
***End Output***

Non so nulla di come funziona questo modulo, ho letto la pagina della 
guida ma ancora il suo funzionamento mi rimane oscuro.
Se qualcuno a voglia di indirizzarmi nel cammino, cosa può aver 
provocato l'errore?

Grazie.

GB.


Maggiori informazioni sulla lista Python