# Mail

El BackEndBase, permite enviar correos usando SendGrid (opens new window) ó el módulo flask_mail, para ello se requiere de la siguiente información:

El módulo mail de google.appengine.api está obsoleto y no se aconseja su uso, se mantiene por compatibilidad de proyectos antiguos y será eliminado en futuras versiones.

# Configuración

En el archivo app/config/mail.py se establecen el remitente, un mensaje por defecto para el cuerpo del mensaje, el puerto, servidor de correo, usuario y contraseña (si se ejecuta en un servidor personalizado) necesarios para el correcto envío de emails.

Nota:

Por defecto los emails se envían de manera asíncrona. El BackEndBase, utilizará el módulo SendGridMail si está disponible, sino flask_mail.

Para más información consulta el archivo : app/ext/mail/__init__.py

# app/config/mail.py
import os

MAIL_SERVER = 'smtp.gmail.com'
MAIL_PORT = 465
DEFAULT_MAIL_SENDER = os.environ.get('DEFAULT_MAIL_SENDER', 'lilith@awesomeapp.com')
MAIL_USERNAME = os.environ.get('MAIL_USERNAME', 'lilith@awesomeapp.com')
MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD', 'awesome_passwd')
MAIL_USE_TLS = False
MAIL_USE_SSL = True

# administrator mail
MAIL_ADMIN = os.environ.get('MAIL_ADMIN', 'no-reply@awesomeapp.com')

# configurations for sendgrid server
SENDGRID_API_KEY = 'awesome-sendgrid-api-key'

DEFAULT_SUBJECT_MAIL = "BackEndBase Mail"

DEFAULT_MAIL_MSG = """
    Este email es generado automaticamente desde el BackEndBase
    Favor no responder.

"""

# Usando flask_mail

La función sendEmail espera dos parametros: message y emails_list

  • message: El mensaje que será añadido al cuerpo del mensaje (DEFAULT_MAIL_MSG).
  • emails_list: Una lista de los posibles destinatarios.
def sendEmail(message, emails_list):
	...

# Enviando nuestro primer email

Importamos el módulo correspondiente:

from app.ext.mail import sendEmail

Utilizamos la función sendEmail:

sendEmail("mira mamá mi primer email con python!", ['jorge.brunal@gmail.com'])

# Usando SendGridMail

SendGridMail es una clase con los siguientes métodos:

# single_email

Permite enviar un email, a un único destinatario.

single_email espera dos parametros:

  • message_body: El mensaje que será añadido al cuerpo del mensaje (DEFAULT_MAIL_MSG).
  • recipient: El email del destinatario.
@staticmethod
def single_email(message_body=None, recipient=None):
  ...

Un ejemplo:

from app.ext.mail import SendGridMail
...

SendGridMail.single_email("email con python y SendGrid!", 'jorge.brunal@gmail.com')

# massive_email

Permite enviar un email, a varios destinatarios.

massive_email espera dos parametros:

  • message_body: El mensaje que será añadido al cuerpo del mensaje (DEFAULT_MAIL_MSG).
  • recipient_list: Una lista de los posibles destinatarios.
@staticmethod
def massive_email(message_body=None, recipient_list=None):
  ...

Un ejemplo:

from app.ext.mail import SendGridMail
...

SendGridMail.massive_email("email masivo con python y SendGrid!", ['jorge.brunal@gmail.com', 'lilith@awesomeapp.com', 'jhondoe@awesomeapp.com'])

# Más información

Para más información consulte: