[Verdebinario] verdebinario: corso "Pensare da informatico - Imparare con Python"
Giuseppe De Marco
peppelinux a yahoo.it
Ven 12 Apr 2013 08:51:36 UTC
Ciao ragazzi,
ieri ho corretto il cgi in php.
Poi emiliano mi ha fatto notare che sarebbe più carino farlo in python, essendo il corso in python.
Ecco la versione in python:
<python.py>
#!/usr/bin/python
# Import modules for CGI handling
import cgi, cgitb
import re
import smtplib
# Create instance of FieldStorage
form = cgi.FieldStorage()
# minimo per non fare a pugni col web-server
print "Content-type:text/html\n\n"
receivers = ['peppelinux a yahoo.it']
message = """From corsopython.verdebinario.org
%s
%s
%s
"""
# non funzia con www-data...da rivedere
def sendMail(sender, nome, note):
sendmail_location = "/usr/sbin/sendmail" # sendmail location
p = os.popen("%s -t -i" % sendmail_location, "w")
p.write("From: %s\n" % sender)
p.write("To: %s\n" % "peppelinux a yahoo.it")
p.write("Subject: Iscrizione corso python\n")
p.write("\n") # blank line separating headers from body
p.write("%s\n\n%s" % ( nome, note ))
status = p.close()
if status != 0:
print "Sendmail exit status", status
else: print 'ok'
# Get data from fields
nome = form.getvalue('nome')
email = form.getvalue('email')
note = form.getvalue('note')
if not nome or not email:
print "Non hai completato i campi"
elif not re.findall( r'[a-z0-9\.\-_]*@[a-z0-9\.\-]*\.[a-z]{2,3}', email ):
print "email non valida"
else:
#p = " <p> %s %s %s </p> " % (nome, email, note)
#sendMail( email, nome, note )
#print p
try:
s = SMTP()
s.connect('smtp.webfaction.com')
s.login('my_mailbox_name','password1')
s.sendmail(from_addr, to_addrs, message % (nome, email, note) )
s.quit()
print "Richiesta inviata :) <br>A presto"
except:
print "Errore invio iscrizione. Prova a contattarci direttamente su info a verdebinario.org"
</python.py>
Ho bisogno di una credenziale mailbox attraverso la quale fare l'autenticazione sull'smtp di webfaction.
la funzione mail() di PHP, invece, usa il system command /usr/bin/sendmail -t -i (come nella funzione sendMail sovra esposta), solo che come utente semplice sendMail funziona, con www-data invece no.
Dato che non ho tempo di fare tests vorrei giusto mettere le credenziali e lavorare con le smtplib.
kisses,
g
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <https://mailman-mail5.webfaction.com/pipermail/verdebinario/attachments/20130412/7c7c3067/attachment.html>
Maggiori informazioni sulla lista
Verdebinario