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:
- El módulo google.appengine.api.mail (opens new window)
- SendGrid API (opens new window)
- La sección de issues (opens new window) del BackEndBase