def main():
    config_file = os.path.abspath('bienvenida/config.conf')
    model = Model(config_file)
    msg_body = """
Estimado %s:
<br><br>
Nos complace informarle que a partir de hoy ya posee una cuenta abierta en nuestra plataforma de gestión en línea para clientes de nuestro estudio.
<br>
Como parte de un proyecto de mejora continua hemos desarrollado un sistema de seguimiento y control que nos vincula directamente con la administración de la empresa poniendo a su disposición toda la información elaborada por nuestro personal.<br>
El material producido estará en línea y será de disponibilidad inmediata desde el momento de su notificación automática por correo electrónico pudiendo acceder a su consulta desde donde sea, cuando sea.<br>
Lo invitamos a recorrer la plataforma haciendo clic <a href='http://contadoresrosario.com/acceso-clientes/'>aquí</a> o ingresando manualmente en la sección de “acceso clientes” de nuestra web. Para poder acceder correctamente debe recordar sus credenciales:<br>
Usuario: %s <br>
Clave: WEBclient000 <br>
Le recordamos que la clave de ingreso al sistema es solo necesaria para un logeo inicial ya que podrá cambiarla cuando lo desee.
<br><br>
El equipo de contadoresrosario.com
"""

    query = """
SELECT id, nombre, email FROM clientes WHERE enviar_mensaje_bienvenida = 1
AND mensaje_bienvenida_enviado = 0 AND administra = 1
"""
    try:
        clientes = model.fetch_all(query)
        email_obj = BTEmail(config_file)

        for cliente in clientes:
            body = msg_body % (cliente['nombre'], cliente['email'])
            email_obj.send_email("Bienvenido a la nueva aplicación de contadoresrosario.com", body, to=cliente['email'])
            model.update("UPDATE clientes SET mensaje_bienvenida_enviado = 1 WHERE id= %s" % cliente['id'])

    except BtException as ex:
        print(ex.msg)
def main():
    params = get_params()
    config_file = os.path.abspath('alertas/config.conf')
    model = Model(config_file)

    # -- Query para obtener todas las alertas no enviadas a sus respectivos clientes
    qry = """
    SELECT
        clientes.nombre AS cliente,
        clientes.email AS email,
        clientes.email_copia_1 AS email_copia_1,
        clientes.email_copia_2 AS email_copia_2,
        clientes.email_copia_3 AS email_copia_3,
        clientes.email_copia_4 AS email_copia_4,
        alertas.*
    FROM  clientes_alertas
    INNER JOIN clientes ON clientes_alertas.id_cliente = clientes.id
    INNER JOIN alertas ON clientes_alertas.id_alerta = alertas.id
    AND alertas.%s = 1
    AND alertas.active = 1
    AND (NOW() >= alertas.dia_desde AND NOW() <= alertas.dia_hasta)""" % params.dia

    clientes_alertas = model.fetch_all(qry)
    email_obj = BTEmail(config_file)

    for ca in clientes_alertas:
        get_emails(ca)
        body_email = """
Estimado %s: <br><br>
%s <br><br>
El equipo de contadoresrosario.com
""" % (ca['cliente'], ca['descripcion'].replace('\n', '<br />'))
        email_obj.send_email(ca['nombre'], body_email, to=get_emails(ca) )
Exemplo n.º 3
0
    def test_send_email(self):
        with mock.patch.object(BTEmail, 'send_email') as send_email_mock:
            ob = BTEmail(self.confif_file_name)
            send_email_mock.get.side_effect = BtException
            send = ob.send_email("A", "M")
            self.assertTrue(send)

        send_email_mock.assert_called_once_with("A", "M")