## Enviar correo electrónico. !!! tip "Cuidado" Siempre guarda las contraseñas de la forma más segura posible. !!! warning "Cuidado" Consulta con el proveedor de tu correo electrónico, la configuración "exacta" necesaria para conectarse a tu servidor. Algunos proveedores no permiten (o dificultan) la conexión desde fuera de su infraestructura.
### **send** Enviar un correo electrónico. ```py from conf import PASSWORD SERVIDOR = dict( server = 'mail.correo.net' , port = 405, ssl = True, user = 'no-responder@pruebas.mx', password = PASSWORD, ) body = "Hola Ingrid\n\n¿Como estas?\n\nSaludos cordiales" mensaje = dict( to = 'ingrid@bergman.mx', subject = 'Te amo...', body = body, ) app.email.send(SERVIDOR, mensaje) ``` Algunos servidores requieren activar también `starttls`: ```py from conf import PASSWORD SERVIDOR = dict( server = 'mail.correo.net' , port = 405, ssl = True, starttls = True, user = 'no-responder@pruebas.mx', password = PASSWORD, ) ``` !!! tip "Importante" Todos los correos se envían siempre en otro hilo de ejecución.
#### Enviar con copia y copia oculta Dentro de los datos del mensaje, puede usar los campos `cc` (Con Copia) y `bcc` (Con Copia Oculta), así como separar por comas las direcciones destino para enviar a más de un correo. ```py to = 'mail1@correo.com,mail2@correo.com,mail3@correo.com' cc = 'otro@correo.com' bcc = 'oculto@correo.com' ```
#### Envíar más de un mensaje ```py mensaje1 = dict( to = 'ingrid@correo.net', subject = 'Te amo...', body = "Hola Ingrid\n\n¿Como estas?\n\nSaludos cordiales", ) mensaje2 = dict( to = 'sophia@correo.net', subject = 'A ti también...', body = "Hola Sophia\n\n¿Como estas?\n\nSaludos cordiales", ) mensajes = (mensaje1, mensaje2) app.email.send(SERVIDOR, mensajes) ``` ```sh 16/08/2022 13:01:49 - DEBUG - Connect to: mail.server.net 16/08/2022 13:01:50 - DEBUG - Email sent... 16/08/2022 13:01:51 - DEBUG - Email sent... 16/08/2022 13:01:51 - DEBUG - Close connection... ```
#### Adjuntos Enviar un archivo adjunto. ```py archivo = '/home/mau/temp.txt' mensaje = dict( to = 'ingrid@bergman.mx', subject = 'Te amo...', body = "Hola Ingrid\n\n¿Como estas?\n\nSaludos cordiales", files = archivo, ) app.email.send(SERVIDOR, mensaje) ``` O varios. ```py archivos = ( '/home/mau/temp.txt', '/home/mau/datos.csv', ) ```
#### Guardar mensajes Si su cliente de correo usa el formato `mbox` (Thunderbird por ejemplo), puede guardar los correos enviados en una carpeta dentro de la configuración de su cliente de correo. ```py ruta = '/home/elmau/.thunderbird/7iznrbyw.default/Mail/Local Folders/LibreOffice' mensaje = dict( to = 'ingrid@bergman.mx', subject = 'Te amo...', body = "Hola Ingrid\n\n¿Como estas?\n\nSaludos cordiales", path = ruta, ) app.email.send(SERVIDOR, mensaje) ```