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:

Edited by djdedo
Link to comment
Share on other sites

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") ?

Edited by djdedo
Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

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