Jump to content
Nokioteca Forum

Problema Con Codice Per Collegamento Internet


djdedo
 Share

Recommended Posts

Salve ragazzi, mi sto cimentando nell'imparare un pò il python, a detta di molti il più semplice, a detta mia è un pò complicatuccio (forse perchè sono abituato a programmare in java). Vengo subito al dunque. Sto cercando di far collegare la mia applicazioncina ad un server smtp utilizzando uno script che ho messo in una funzione che è il seguente

def sendmail(mittente, destinatario, oggetto, messaggio):
   server = 'indirizzo server' # SMTP server address for dest
   domain = 'DedoSendMailPython'
   username = 'utente'
   password = 'password dell utente'

   # send mail
   now = time.time()
   date = rfc822.formatdate(now)
   number = whrandom.randint(0, 0xffffff)
   msgid = '<%X.%X@%s>' % (now, number, domain)
   s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
   print('connecting to SMTP server...')
   s.connect((server, 25))
   print 'sending headers...'
   f = s.makefile()
   assert f.readline().startswith('2')
   print >>f, 'ehlo', domain
   f.flush()
   assert f.readline.startswith('2')
   print >>f, 'auth login'
   f.flush()
   assert f.readline.startswith('2')
   print >>f, username.encode('base64')
   f.flush()
   assert f.readline.startswith('2')
   print >> f, password.encode('base64')
   f.flush()
   assert f.readline().startswith('2')
   print >>f, 'mail from:', mittente
   f.flush()
   assert f.readline().startswith('2')
   print >>f, 'rcpt to:', destinatario
   f.flush()
   assert f.readline().startswith('2')
   print >>f, 'data'
   f.flush()
   assert f.readline().startswith('3')
   print >>f, 'Message-ID:', msgid
   print >>f, 'Date:', date
   print >>f, 'From:', mittente
   print >>f, 'MIME-Version: 1.0'
   print >>f, 'To:', destinatario
   print >>f, 'Subject:', oggetto
   boundary = '------' + date.encode('hex')
   print >>f, 'Content-Type: multipart/mixed; boundary="%s"' % boundary
   print >>f
   print >>f, 'This is a multi-part message in MIME format.'
   print >>f, '--' + boundary
   print >>f, 'Content-Type: text/plain; charset=utf-8'
   print >>f
   print >>f, messaggio
   print >>f, '--' + boundary
   print >>f
   print >>f, '.'
   f.flush()
   assert f.readline().startswith('2')
   print >>f, 'quit'
   f.flush()
   s.close()

il problema è che non da segni di vita, nel senso che appena richiamo la funzione non succede nulla però non sembra neanche piantata l'applicazione. Su emulatore invece da "python: system error (-50)"

Come si usano le connessione di rete col python? Non ci sto capendo nulla :crying_anim02:

Modificato da djdedo
Link to comment
Condividi su altri siti

Ti ringrazio intanto per la risposta, proverò a modificare il codice come mi hai suggerito e vedo cosa succede. Non lo avevo modificato perchè su internet lo avevano dato per funzionante

EDIT:

Ma devo modificare in print variabile, "stringa" oppure in print(variabile, "stringa") ?

Modificato da djdedo
Link to comment
Condividi su altri siti

  • 2 settimane dopo...

Please sign in to comment

You will be able to leave a comment after signing in



Accedi Ora
 Share

×
×
  • Crea Nuovo...

Informazione Importante

Questo sito utilizza i cookie per analisi, contenuti personalizzati e pubblicità. Continuando la navigazione, accetti l'utilizzo dei cookie da parte nostra | Privacy Policy