easymacro/doc/docs/tools/email.md

145 lines
3.1 KiB
Markdown
Raw Normal View History

2023-04-23 11:31:58 -06:00
## 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)
```