[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