easymacro/doc/docs/tools/email.md

3.1 KiB

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.

    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:

    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.

    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

    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)
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.

    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.

    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.

    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)