lunes, 16 de abril de 2012

Envió de correo electrónico desde DJANGO PYTHON creando una clases enviar email

Debes de crear una clase para envio de correo electrónico
clase enviarEmail.py

#! /usr/bin/python
# -*- coding: UTF-8 -*-
import smtplib 
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import sys
from django.conf import settings

class ContenidoMensaje():
    titulo      = ""
    fecha       = None
   
    def __init__(self, titulo, fecha, detalle_mensaje):
        self.titulo     = titulo
        self.fecha      = fecha
        self.detalle_mensaje  = detalle_mensaje
   

class EmailHoteleria():
    emitente    = ""
    emisor      = "carluchojordan@gmail.com"
    detalle_mensaje   = None
   
    def __init__(self, emitente, emisor, detalle_mensaje):
        self.emitente           = emitente
        self.emisor             = emisor
        self.detalle_mensaje    = detalle_mensaje
   
    def enviarMensaje(self):
        msg = MIMEMultipart('alternative')
        c = ""
       
        html = """\
                    <html>
                      <head>
                         <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
                      </head>
                      <body>
                        <p style='color:white; font-size:18px; background:#3E96D6'>
                            titulo
                        </p>
                        <h2 style='color:black; font-size:16px'>"""+self.detalle_mensaje.titulo+""" </h2>
                        <div style="color:black; font-size:12px; border:#3E96D6">"""+(self.detalle_mensaje.detalle_mensaje)+"""</div>
                      </body>
                    </html>
                    """  
                   
        part2           = MIMEText(html, 'html', _charset='UTF-8')
        msg['Subject']  = (self.detalle_mensaje.titulo)
        msg['From']     = self.emitente
        msg['To']       = self.emisor
       
        msg.attach(part2)
           
        server = smtplib.SMTP('smtp.gmail.com:587') 
        server.starttls() 
        server.login("carluchojordan@gmail.com","XXXXXXXX")
       
        respuesta = server.sendmail(self.emitente, self.emisor ,msg.as_string()) 
        server.quit()
        return respuesta

   

en la vista debe de contener lo siguiente, instanciamos la clase email para poder enviar, observación debe de estar instalada el postfix para que se envie el email, sino lo tiene instalado va a salir error, para eso debe de instalarlo de la siguiente forma:

sudo apt-get install postfix



vista.py

#! /usr/bin/python
# -*- coding: UTF-8-*-

# +-----------------------------------------------------------------------------+
# |                                                                             |
# |     Nombre archivo:         views.py                                        |
# |     Autor:                  Carlos Jordàn Murillo                           |
# |                                                                             |
# |     Descripci?n:                                                            |
# |     Sirve para poder validar y verificar cuando un usuario intenta ingresar |
# |     en los templates.                                                       |
# |                                                                             |
# +-----------------------------------------------------------------------------+

from django.template import RequestContext
from django.shortcuts import render_to_response
from django.http import *
from random import choice
from string import letters
from django.contrib.auth.models import User
from django.views.decorators.csrf import csrf_exempt
from django.contrib.auth import authenticate
from django.core.mail import send_mail
from datetime import *
from django.http import *
from django import forms

from correo.CorreoElectronico import ContenidoMensaje, EmailHoteleria

import time
import datetime

def enviarEmail(request):
    today = datetime.date.today()
    detalleMensaje = ContenidoMensaje("Esto es una prueba", today, "Envio de prueba")
    enviar_mensaje = EmailHoteleria("carluchojordan@gmail.com","carluchojordan@gmail.com",detalleMensaje)
    enviar_mensaje.enviarMensaje()
    return HttpResponse("dsadfsa")
   

No hay comentarios:

Publicar un comentario