145 lines
3.1 KiB
Markdown
145 lines
3.1 KiB
Markdown
|
## 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.
|
||
|
|
||
|
<br>
|
||
|
|
||
|
### **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.
|
||
|
|
||
|
<br>
|
||
|
|
||
|
#### 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'
|
||
|
```
|
||
|
|
||
|
<br>
|
||
|
|
||
|
#### 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...
|
||
|
```
|
||
|
|
||
|
<br>
|
||
|
|
||
|
#### 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',
|
||
|
)
|
||
|
```
|
||
|
|
||
|
<br>
|
||
|
|
||
|
#### 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)
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
|