Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/03/2014, 16:16
Avatar de andresgarciadev
andresgarciadev
 
Fecha de Ingreso: junio-2013
Mensajes: 218
Antigüedad: 10 años, 10 meses
Puntos: 32
enviar email con archivo adjunto

Buenas y gracias de antemano.... quisiera ver si alguno me pueda brinda una ayuda con este tema que me tiene dando muchas vueltas
recien ando comenzando en el lenguaje de python asi que aun no entiendo del todo bien la sintaxis del todo.
ya e logrado enviar un mensaje sin un archivo pero el problema a comenzado desde que intente hacerlo con el.... si alguno me puede decir que esta mal le agradeceria mucho....
tengo este codigo html
Código HTML:
Ver original
  1. {% extends "estructurausu.html" %}
  2. {% block contenido %}
  3. <h2> Ingrese mensaje </h2>
  4.     <form action="{% url 'usuario.views.sendemail' %}" method="POST" enctype="multipart/form-data">
  5.     {% csrf_token %}
  6.     <p> Titulo: {{ form.titulo }}</p>
  7.     <p> Contenido: {{ form.contenido }}</p>
  8.     <p> Email: {{ form.email }}</p>
  9.     <p> Archivo: <input type="file" name="imagen"></p>
  10.     <p><input type="submit" value="Enviar"></p>
  11.     </form>
  12. {% endblock %}
el cual me llevaa esta funcion
Código Python:
Ver original
  1. def sendemail2(request):
  2.     p = request.POST
  3.     d = dict(form = Formularioemail(), usuario = request.user)
  4.     d.update(csrf(request))
  5.     if p:
  6.         files = request.FILES
  7.         msg = MIMEMultipart()
  8.         msg['From'] = '[email protected]'
  9.         msg['To'] = COMMASPACE.join(p["email"])
  10.         msg['Date'] = formatdate(localtime=True)
  11.         msg['Subject'] = p["titulo"]
  12.         msg.attach( MIMEText(p["contenido"]) )
  13.         for f in files:
  14.             part = MIMEBase('application', "octet-stream")
  15.             part.set_payload( open(f,"rb").read() )
  16.             Encoders.encode_base64(part)
  17.             part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(f))
  18.             msg.attach(part)
  19.  
  20.         smtp = smtplib.SMTP("localhost")
  21.         smtp.sendmail('[email protected]', p["email"], msg.as_string())
  22.         smtp.close()
  23.     return render_to_response("email.html",d)
eso me trae un error de "No such file or directory: u'imagen'"
imagino el error es con request.FILES pero ni idea de como deba ser... si alguno me ayuda agradeceria mucho
porcierto el codigo lo saque de esta pagina
http://stackoverflow.com/questions/3362600/how-to-send-email-attachments-with-python