Quijost

Por favor ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Búsqueda Avanzada  

Noticias:

Deja tu post en el foro para hacer algun tipo de consulta

Autor Tema: Como enviar un correo desde la shell de Django  (Leído 12666 veces)

0 Usuarios y 1 Visitante están viendo este tema.

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Como enviar un correo desde la shell de Django
« en: Octubre 01, 2012, 11:08:26 am »

En este tutorial se explicará como enviar un correo desde la shell de Django.

Requisitos
- Disponer de una cuenta de alojamiento compartido ebasic o superior con acceso SSH

Introducción
Para enviar un correo usando Django se debe tener creado un proyecto Django. Si no dispones de ninguno creado puedes crear uno con:

Código: [Seleccionar]
$ django-admin.py startproject proyectoejemplo
Con esto crearemos una carpeta con el nombre "proyectoejemplo"

Para usar la shell de Django de dicho proyecto nos cambiamos a su directorio con:

Código: [Seleccionar]
$ cd proyectoejemplo/
Ahora para iniciar la shell de Django:

Código: [Seleccionar]
$ python manage.py shell
Esto producirá una salida como:

Código: [Seleccionar]
Python 2.7.3rc1 (default, Mar  1 2012, 08:06:44)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>

Con la que se podrá introducir código en la shell interactiva.

Envío de correos

Para el envío de correos se hará uso de la clase EmailMessage de Django.

Para ello en la shell interactiva escribimos:

Código: [Seleccionar]
from django.core.mail import EmailMessage
La siguiente instrucción creará una variable email, indicando el asunto (subject), cuerpo del mensaje (body), remitente (from_email) y destinatario (to):
Código: [Seleccionar]
email = EmailMessage(subject='Ejemplo de prueba', body='Este es un ejemplo de prueba de correo', from_email='Mi Empresa <info@miempresa.com>', to=['micliente@otraempresa.com'])
Una vez hemos creado el email, sólo necesitamos enviarlo con:

Código: [Seleccionar]
email.send()
Configuraciones adicionales

Puede omitirse si se desea el campo from_email y en su lugar django cojerá la constante definida en el settings.py de DEFAULT_FROM_EMAIL, de esta forma se puede ahorrar configurar el remitente por defecto.

En el projecto Django inicialmente creado, la configuración por defecto envia el correo mediante SMTP. Si se desea configurar los parámetros para algún dominio se deben modificar las siguientes contantes (adecuando a los datos deseados):

Código: [Seleccionar]
EMAIL_USE_TLS = False
EMAIL_HOST = 'mail.midominio.com'
EMAIL_HOST_USER = 'cuentacorreo@midominio.com'
EMAIL_HOST_PASSWORD = 'micontraseña'
EMAIL_PORT = 25

Es importante recalcar que para conexiones normales de SMTP donde no se disponga de SSL, la opción de la constante EMAIL_USE_TLS debe estar desactivada.
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support
 

Página generada en 0.101 segundos con 36 consultas.