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