Webmaster > Tutoriales y Manuales

Como enviar un correo desde la shell de Django

(1/1)

shakaran:
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: ---$ django-admin.py startproject proyectoejemplo
--- Fin del código ---

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: ---$ cd proyectoejemplo/
--- Fin del código ---

Ahora para iniciar la shell de Django:


--- Código: ---$ python manage.py shell
--- Fin del código ---

Esto producirá una salida como:


--- Código: ---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)
>>>
--- Fin del código ---

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: ---from django.core.mail import EmailMessage
--- Fin del código ---

La siguiente instrucción creará una variable email, indicando el asunto (subject), cuerpo del mensaje (body), remitente (from_email) y destinatario (to):

--- Código: ---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'])
--- Fin del código ---

Una vez hemos creado el email, sólo necesitamos enviarlo con:


--- Código: ---email.send()
--- Fin del código ---

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: ---EMAIL_USE_TLS = False
EMAIL_HOST = 'mail.midominio.com'
EMAIL_HOST_USER = 'cuentacorreo@midominio.com'
EMAIL_HOST_PASSWORD = 'micontraseña'
EMAIL_PORT = 25
--- Fin del código ---

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.

Navegación

[0] Índice de Mensajes

Ir a la versión completa