Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Python - Inviare email
Forum - Python - Inviare email

Avatar
Edex (Normal User)
Newbie


Messaggi: 12
Iscritto: 09/05/2011

Segnala al moderatore
Postato alle 20:35
Sabato, 02/07/2011
Salve ragazzi, oggi stavo cercando di inviare una mail con python però ho riscontrato qualche problema. Utilizzo il metodo smtplib, che credo sia quello giusto no?

Scrivo questo codice cercando di aprire un connessione con il server SMTP:
Codice sorgente - presumibilmente Python

  1. import smtplib
  2. server = smtplib.SMTP('smtp.gmail.com')



Mi da però l'errore:
Codice sorgente - presumibilmente Python

  1. Traceback (most recent call last):
  2.   File "<interactive input>", line 1, in <module>
  3.   File "C:\Python25\lib\smtplib.py", line 244, in __init__
  4.     (code, msg) = self.connect(host, port)
  5.   File "C:\Python25\lib\smtplib.py", line 310, in connect
  6.     raise socket.error, msg
  7. error: (10061, 'Connection refused')



perchè?
Visto che è la prima volta che tento una cosa del genere potrei aver scritto tante, ma tante, cavolate quindi vi prego di essere comprensivi. :D

Ultima modifica effettuata da Edex il 02/07/2011 alle 20:37
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6404
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:59
Sabato, 02/07/2011
gmail deve essere contattata sulla porta 587 e devi utilizzare il comando STARTTLS per la comunicazione sicura


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Edex (Normal User)
Newbie


Messaggi: 12
Iscritto: 09/05/2011

Segnala al moderatore
Postato alle 0:53
Domenica, 03/07/2011
Ho provato a contattare il server come hai detto tu, ho scritto:
Codice sorgente - presumibilmente Python

  1. import smtplib
  2. server = smtplib.SMTP('smtp.gmail.com:587')
  3. server.starttls()
  4. server.login(user,psw)



Quando però vado a dare invio sul comando server.login() esce questo errore:
Codice sorgente - presumibilmente Python

  1. Traceback (most recent call last):
  2.   File "C:\Python25\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 325, in RunScript
  3.     exec codeObject in __main__.__dict__
  4.   File "C:\Users\Franco\Desktop\Script1.py", line 14, in <module>
  5.     server.login(username,password)
  6.   File "C:\Python25\lib\smtplib.py", line 554, in login
  7.     raise SMTPException("SMTP AUTH extension not supported by server.")
  8. SMTPException: SMTP AUTH extension not supported by server.



Ho provato più volte, l'unica volta che non è uscito quest'errore è quando dopo l'invio del comando starttls() è uscito come risultato una stringa con scritto continue. Il risultato di starttls() cambia continuamente infatti, perchè?

P.S. Devo utilizzare questo metodo di chiamata del server per tutti i server che richiedono autenticazione? E poi come trovo le porte a cui accedere?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6404
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 0:54
Domenica, 03/07/2011


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Edex (Normal User)
Newbie


Messaggi: 12
Iscritto: 09/05/2011

Segnala al moderatore
Postato alle 11:36
Domenica, 03/07/2011
Grazie dell' aiuto ora funziona, però ho un altro problema.
Ho voluto provare a creare un messaggio MIMEMultipart ed a aggiungere un'immagine, seguo il procedimeno che utilizza anche nell'esempio ma quando do il seguente codice all'interprete:
Codice sorgente - presumibilmente Plain Text

  1. img = open(FilePath, 'rb')


mi restituisce l'errore:
Codice sorgente - presumibilmente Python

  1. Traceback (most recent call last):
  2.   File "C:\Python25\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 325, in RunScript
  3.     exec codeObject in __main__.__dict__
  4.   File "C:\Users\Public\Pictures\Sample Pictures\Script1.py", line 1, in <module>
  5.     img = open('Deserto.jpg','rb')
  6. IOError: [Errno 2] No such file or directory: 'Deserto.jpg'



Perchè?
Comunque ho notato che me lo fa solo con le immagini, e più precisamente con le jpeg perchè con le png funziona tutto bene...

Inoltre andando avanti con l'immagine in formato png quando vado a eseguire la riga:
Codice sorgente - presumibilmente Plain Text

  1. MIMEImage(file.read(),_subType = subType)


mi compare l'errore:
Codice sorgente - presumibilmente Python

  1. Traceback (most recent call last):
  2.   File "<interactive input>", line 1, in <module>
  3.   File "C:\Python25\lib\email\mime\image.py", line 43, in __init__
  4.     raise TypeError('Could not guess image MIME subtype')
  5. TypeError: Could not guess image MIME subtype


Ultima modifica effettuata da Edex il 03/07/2011 alle 19:28
PM Quote